Yaf_Controller_Abstract::forward()
(Yaf >=1.0.0)
The forward purpose
说明
public Yaf_Controller_Abstract::forward(string $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
参见
- Yaf_Request_Abstrace::getParam()
