(Yaf >=1.0.0)
Yaf_Controller_Abstract::forward — The forward purpose
$module
[, string $controller
[, string $action
[, array $paramters
]]] ) : void将当前的请求转交给另外的Action.
Note:
调用Yaf_Controller_Abstract::forward()以后, 不会直接立即跳转到目的Action执行, 而是会在当前的Action执行完成后, 下一轮的DispatchLoop中, 交给目的Action.
所以, 如果你希望立即跳转到目的Action, 那么请使用return结束当前的执行流程.
module
要跳转的目的Action的Module, 如果是NULL, 则默认Module会被采用.
controller
要跳转的目的Action的Controller, 如果是NULL, 则默认Controller会被采用.
action
要跳转的目的Action.
paramters
跳转参数, 可以在目的Action中通过Yaf_Request_Abstrace::getParam()来获取.
Example #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不要自动渲染这个Action的视图
}
// other processes
}
public function loginAction() {
echo "login, redirected from ", $this->_request->getParam("from") , " action";
}
}
?>
以上例程的输出类似于:
login, redirected from Index action
return FALSE on failure