thinkphp3.2怎么使用立即跳轉(zhuǎn)功能

thinkphp框架中,跳轉(zhuǎn)功能可以使用redirect方法來(lái)實(shí)現(xiàn)。因?yàn)樵摲椒ǘx在控制器基類中,所以控制器可以直接調(diào)用它來(lái)實(shí)現(xiàn)立即跳轉(zhuǎn)的功能。redirect方法接受兩個(gè)參數(shù):$url和$params。

其中,$url是重定向的URL地址。該參數(shù)可以是簡(jiǎn)單的字符串,也可以是數(shù)組或以#開(kāi)頭的錨點(diǎn)值。假若$Url參數(shù)是一個(gè)數(shù)組,其中可以包含路由規(guī)則別名、控制器名稱、操作名稱以及參數(shù)列表。即數(shù)組可以通過(guò)指定不同的元素,達(dá)到不同的跳轉(zhuǎn)效果。

$params是一個(gè)可選參數(shù),可用于指定附加到GET請(qǐng)求的參數(shù)。該參數(shù)只有在URL中沒(méi)有查詢字符串(即“?”)時(shí)才有效。如果URL已經(jīng)包含查詢字符串,那么$params將被忽略。

下面是一個(gè)使用redirect方法的示例:

立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

class?IndexController?extends?Controller { ????public?function?index() ????{ ????????//?直接跳轉(zhuǎn)到百度首頁(yè) ????????$this->redirect('http://www.baidu.com'); ????}  ????public?function?test() ????{ ????????//?跳轉(zhuǎn)到當(dāng)前控制器Index操作中 ????????$this->redirect('Index/index');  ????????//?跳轉(zhuǎn)到Home控制器中的Index操作 ????????$this->redirect('Home/Index/index');  ????????//?跳轉(zhuǎn)并傳遞$name參數(shù) ????????$this->redirect('Index/index',?Array('name'?=>?'ThinkPHP'));  ????????//?跳轉(zhuǎn)并傳遞多個(gè)參數(shù) ????????$this->redirect('Index/index',?array('name'?=>?'ThinkPHP',?'id'?=>?100)); ????} }

在上述代碼示例中,使用了redirect方法實(shí)現(xiàn)了多種跳轉(zhuǎn)功能。如 $this->redirect(‘http://www.baidu.com’); 就是直接跳轉(zhuǎn)到百度首頁(yè)的操作。 $this->redirect(‘Index/index’); 則是跳轉(zhuǎn)到當(dāng)前控制器Index操作中。 $this->redirect(‘Home/Index/index’); 指的是跳轉(zhuǎn)到Home控制器中的Index操作。 $this->redirect(‘Index/index’, array(‘name’ => ‘ThinkPHP’)); 則是跳轉(zhuǎn)并傳遞$name參數(shù)。 $this->redirect(‘Index/index’, array(‘name’ => ‘ThinkPHP’, ‘id’ => 100)); 是跳轉(zhuǎn)并傳遞多個(gè)參數(shù)。

除了將網(wǎng)頁(yè)重定向到指定URL,redirect方法也可以將其重定向到路由規(guī)則的別名。在這種情況下,$url參數(shù)應(yīng)該是一個(gè)路由別名,而不是URL地址。例如,假設(shè)我們有以下路由規(guī)則:

//?路由規(guī)則定義 'link/:id'?=>?'Links/link',

我們可以在控制器中使用路由規(guī)則別名“l(fā)ink”調(diào)用redirect方法,從而跳轉(zhuǎn)到鏈接頁(yè)面。例如:

class?LinksController?extends?Controller { ????public?function?link() ????{ ????????$id?=?I('get.id'); ????????$link?=?M('Links')->where(array('id'=>$id))->find();  ????????//?驗(yàn)證鏈接是否存在 ????????if?($link)?{ ????????????//?跳轉(zhuǎn)到重定義的路由規(guī)則上 ????????????$this->redirect('link/'.$id); ????????}?else?{ ????????????$this->error('鏈接不存在!'); ????????} ????} }

在上述代碼示例中,我們?cè)贚inks控制器的link方法中使用了重定向到重定義的路由規(guī)則別名的方法。 “$this->redirect(‘link/’.$id);” 使用了路由別名并傳遞了參數(shù),以跳轉(zhuǎn)到鏈接頁(yè)面。

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊8 分享