©
This document uses PHP Chinese website manual Release
(Yaf >=1.0.0)
Yaf_Controller_Abstract::forward — The forward purpose
$module
[, string $controller
[, string $action
[, array $paramters
]]] )将当前的请求转交给另外的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