(Yaf >=1.0.0)
Yaf_Controller_Abstract::forward — The forward purpose
$module
,$controller
= ?,$action
= ?,$paramters
= ?將當(dāng)前的請(qǐng)求轉(zhuǎn)交給另外的Action.
注意:
調(diào)用Yaf_Controller_Abstract::forward()以后, 不會(huì)直接立即跳轉(zhuǎn)到目的Action執(zhí)行, 而是會(huì)在當(dāng)前的Action執(zhí)行完成后, 下一輪的DispatchLoop中, 交給目的Action.
所以, 如果你希望立即跳轉(zhuǎn)到目的Action, 那么請(qǐng)使用return結(jié)束當(dāng)前的執(zhí)行流程.
module
要跳轉(zhuǎn)的目的Action的Module, 如果是NULL, 則默認(rèn)Module會(huì)被采用.
controller
要跳轉(zhuǎn)的目的Action的Controller, 如果是NULL, 則默認(rèn)Controller會(huì)被采用.
action
要跳轉(zhuǎn)的目的Action.
paramters
跳轉(zhuǎn)參數(shù), 可以在目的Action中通過Yaf_Request_Abstrace::getParam()來獲取.
示例 #1 Yaf_Controller_Abstract::forward()例子
<?php
class IndexController extends Yaf_Controller_Abstract
{
public function indexAction(){
$logined = $_SESSION["login"];
if (!$logined) {
$this->forward("login", array("from" => "Index")); // 跳轉(zhuǎn)到login Action
return FALSE; // return立即結(jié)束當(dāng)前的執(zhí)行流程, 跳轉(zhuǎn)到目的Action
// 而這里的FALSE是告訴Yaf不要自動(dòng)渲染這個(gè)Action的視圖
}
// other processes
}
public function loginAction() {
echo "login, redirected from ", $this->_request->getParam("from") , " action";
}
}
?>
以上例程的輸出類似于:
login, redirected from Index action
return FALSE on failure