扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在以为的tp版本中,在很多场景需要使用redirect等方法进行重定向,但是在tp6版本已经默认取消了这些方法,原因在于在tp6中think\Controller类取消了,由此导致原来的success、error、redirect和result等方法都被剔除。这一点在tp框架官方文档的升级指导篇中有说明:
如果需要按老版本的习惯使用这些方法,需要手动安装扩展类予以支持,安装命令行如下:
composer require liliuwei/thinkphp-jump
安装后在使用success、error、redirect和result等方法方法前需要先调用对应的类:
use \liliuwei\think\Jump;
实际上在tp6中提供了一个redirect助手函数:
function redirect(string $url = '', int $code = 302): Redirect { return Response::create($url, 'redirect', $code); }
可以这样使用:
return redirect('项目内网址');
但这个方法似乎只支持本项目内的路径,如跳转到第三方是不被支持的。其实我们也可以手动建立一个基类Base,然后在基类中,自定义一个redirect方法,如下:
public function redirect($url){ if(dstrpos($url,ROOT)===false){ $url=HOST.$url; } header('location:'.$url); die; }
然后跟tp5一样直接使用$this->redirect()来调用。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流