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()