掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
在以為的tp版本中,在很多場(chǎng)景需要使用redirect等方法進(jìn)行重定向,但是在tp6版本已經(jīng)默認(rèn)取消了這些方法,原因在于在tp6中think\Controller類取消了,由此導(dǎo)致原來(lái)的success、error、redirect和result等方法都被剔除。這一點(diǎn)在tp框架官方文檔的升級(jí)指導(dǎo)篇中有說(shuō)明:
如果需要按老版本的習(xí)慣使用這些方法,需要手動(dòng)安裝擴(kuò)展類予以支持,安裝命令行如下:
composer require liliuwei/thinkphp-jump
安裝后在使用success、error、redirect和result等方法方法前需要先調(diào)用對(duì)應(yīng)的類:
use \liliuwei\think\Jump;
實(shí)際上在tp6中提供了一個(gè)redirect助手函數(shù):
function redirect(string $url = '', int $code = 302): Redirect { return Response::create($url, 'redirect', $code); }
可以這樣使用:
return redirect('項(xiàng)目?jī)?nèi)網(wǎng)址');
但這個(gè)方法似乎只支持本項(xiàng)目?jī)?nèi)的路徑,如跳轉(zhuǎn)到第三方是不被支持的。其實(shí)我們也可以手動(dòng)建立一個(gè)基類Base,然后在基類中,自定義一個(gè)redirect方法,如下:
public function redirect($url){ if(dstrpos($url,ROOT)===false){ $url=HOST.$url; } header('location:'.$url); die; }
然后跟tp5一樣直接使用$this->redirect()來(lái)調(diào)用。
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流