千家信息网

如何进行TP5重定向

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,如何进行TP5重定向,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。学习目标一、页面跳转如果要使用页面跳转必须要继承基类C
千家信息网最后更新 2026年11月01日如何进行TP5重定向

如何进行TP5重定向,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

学习目标

一、页面跳转

如果要使用页面跳转必须要继承基类Controller类,因为基类Controller引入了trait类库,trait类库又实现了success()和error()的跳转方法。

1、当前控制器

来到默认模块默认控制器中演示,首先继承自基类Controller,在当前Index控制器中创建一个hello()方法来模拟网站的后台登陆和页面的跳转:

class Index extends \think\Controller{    public function index()    {        return 'TP5学习ing....';    }    public function hello($name)    {        if ($name=='thinkphp') {          $this->success('验证成功,正在跳转~~','ok');        }        else {          $this->error('验证失败,返回登陆页面','login');        }    }    public function ok()    {        return '欢迎使用本系统';    }    public function login()    {        return '登陆页面';    }}

根据逻辑,如果访问的url是:http://tp5.com/index/index/hello/name/thinkphp,会执行success()方法,跳转到ok()方法,反之,使用:http://tp5.com/index/index/hello/name/tp5,则会走error()方法,跳转到login()方法。


2、跨控制器

首先创建一个新的控制器Login,把Index中的ok()和login()方法剪切到文件中:

然后,Index控制器也进行修改:

success('验证成功,正在跳转~~','login/ok');        }        else {          $this->error('验证失败,返回登陆页面','login/login');        }    }}

这样就实现了跨控制器的跳转,我们来验证一下:http://tp5.com/index/index/hello/name/thinkphp和http://tp5.com/index/index/hello/name/tp5都能正常跳转。


3、跨模块

首先创建一个demo模块,模块下创建控制器Login.php,把上个例子的Login.php的内容拷贝过去,修改下命名空间,保存。

然后修改下Index控制器:

public function hello($name){    if ($name=='thinkphp') {      $this->success('验证成功,正在跳转~~','demo/login/ok');    }    else {      $this->error('验证失败,返回登陆页面','demo/login/login');    }}

这样就实现了跨模块的跳转,我们来验证一下:http://tp5.com/index/index/hello/name/thinkphp和http://tp5.com/index/index/hello/name/tp5依旧都能正常跳转。


4、外部地址

如果跳转为外部地址的话,记得前提是必须要以协议开头!
演示也很简单,修改一下error()方法跳转的地址:

$this->error('验证失败,返回登陆页面','http://www.baidu.com');

使用http://tp5.com/index/index/hello/name/tp5测试一下,成功跳转到百度。


补充说明

补充一下,这个跳转地址,除了可以用字符串的形式外,还可以路由的方式来生成。示例如下:

$this->success('验证成功,正在跳转~~',\think\Url::build('demo/login/ok'));

如果觉得这样写比较繁琐,还可以通过注入函数进行简化:

$this->success('验证成功,正在跳转~~',url('demo/login/ok'));

也没有问题。


二、URL重定向

使用redirect(路由地址,请求变量,后缀,是否显示域名)方法
演示一下,因为演示是跳转到同一控制器中的,只需要前两个参数:

class Index extends \think\Controller{    public function hello($name)    {        if ($name=='thinkphp') {          $this->redirect('ok',['siteName'=>'百度']);        }    }    public function ok($siteName)    {      return '成功就会跳转到 '.$siteName.' 网址。';    }}

我们来验证一下:http://tp5.com/index/index/hello/name/thinkphp,可以正常跳转。

同样的,重定向也支持外部地址:

    public function hello($name)    {        if ($name=='thinkphp') {          $this->redirect('ok',['siteName'=>'百度']);        }        else {          $this->redirect('http://www.baidu.com',302);//302是临时重定向,301是永久重定向        }    }

验证一下:http://tp5.com/index/index/hello/name/tp5,直接重定向到百度了。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

验证 控制器 控制 方法 页面 成功 登陆 地址 模块 正在 学习 演示 内容 系统 路由 帮助 支持 清楚 繁琐 两个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 南京欣网互联网络科技 科技与互联网发展 为想互联网科技 互联网科技媒体 广州互联网络科技有限公司 美国互联网黑科技 互联网前沿科技 互联网养老 桔豆科技 互联网科技大会案例 深圳互联网科技怎么样 崇明区互联网教育科技诚信经营 黑科技闪耀互联网之光 宜昌元轩互联网科技有限公司 浙南科技城互联网大厦建设工程 智帮互联网科技公司最近动向 雨阳互联网卡科技有限公司 东营紫格互联网科技 恒生互联网科技趋势 东风日产互联网科技公司叫什么 瑞安市蟠桃会互联网科技有限公司 厦门千工互联网科技有限公司 电子科技大学互联网创业大赛 云南省自由互联网科技有限公司 互联网科技数字货币 本届互联网大会上的黑科技 风投北京互联网科技 云南互联网科技学费 西安左小互联网科技有限公司 互联网时代高科技布局 重庆科技产业互联网有哪些
0