文字

Yaf_Controller_Abstract::forward

(Yaf >=1.0.0)

Yaf_Controller_Abstract::forwardThe forward purpose

说明

public void Yaf_Controller_Abstract::forward ( string $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

参见

  • Yaf_Request_Abstrace::getParam()
上一篇: 下一篇: