Yaf_Controller_Abstract::forward

(Yaf >=1.0.0)

Yaf_Controller_Abstract::forwardThe 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()
关注编程学问公众号