(Yaf >=1.0.0)
Yaf_Controller_Abstract::forward — The forward purpose
$module
,$controller
= ?,$action
= ?,$paramters
= ?將當前的請求轉交給另外的Action.
注意:
調用Yaf_Controller_Abstract::forward()以后, 不會(huì )直接立即跳轉到目的Action執行, 而是會(huì )在當前的Action執行完成后, 下一輪的DispatchLoop中, 交給目的Action.
所以, 如果你希望立即跳轉到目的Action, 那么請使用return結束當前的執行流程.
module
要跳轉的目的Action的Module, 如果是NULL, 則默認Module會(huì )被采用.
controller
要跳轉的目的Action的Controller, 如果是NULL, 則默認Controller會(huì )被采用.
action
要跳轉的目的Action.
paramters
跳轉參數, 可以在目的Action中通過(guò)Yaf_Request_Abstrace::getParam()來(lái)獲取.
示例 #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")); // 跳轉到login Action
return FALSE; // return立即結束當前的執行流程, 跳轉到目的Action
// 而這里的FALSE是告訴Yaf不要自動(dòng)渲染這個(gè)Action的視圖
}
// other processes
}
public function loginAction() {
echo "login, redirected from ", $this->_request->getParam("from") , " action";
}
}
?>
以上例程的輸出類(lèi)似于:
login, redirected from Index action
return FALSE on failure