Yaf_Controller_Abstract::forward

(Yaf >=1.0.0)

Yaf_Controller_Abstract::forwardThe forward purpose

說(shuō)明

public Yaf_Controller_Abstract::forward(
    string $module,
    string $controller = ?,
    string $action = ?,
    array $paramters = ?
): void

將當(dāng)前的請(qǐng)求轉(zhuǎn)交給另外的Action.

注意:

調(diào)用Yaf_Controller_Abstract::forward()以后, 不會(huì)直接立即跳轉(zhuǎn)到目的Action執(zhí)行, 而是會(huì)在當(dāng)前的Action執(zhí)行完成后, 下一輪的DispatchLoop中, 交給目的Action.

所以, 如果你希望立即跳轉(zhuǎn)到目的Action, 那么請(qǐng)使用return結(jié)束當(dāng)前的執(zhí)行流程.

參數(shù)

module

要跳轉(zhuǎn)的目的Action的Module, 如果是NULL, 則默認(rèn)Module會(huì)被采用.

controller

要跳轉(zhuǎn)的目的Action的Controller, 如果是NULL, 則默認(rèn)Controller會(huì)被采用.

action

要跳轉(zhuǎn)的目的Action.

paramters

跳轉(zhuǎn)參數(shù), 可以在目的Action中通過(guò)Yaf_Request_Abstrace::getParam()來(lái)獲取.

范例

示例 #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")); // 跳轉(zhuǎn)到login Action
             
return FALSE;  // return立即結(jié)束當(dāng)前的執(zhí)行流程, 跳轉(zhuǎn)到目的Action
                            // 而這里的FALSE是告訴Yaf不要自動(dòng)渲染這個(gè)Action的視圖
         
}

         
// other processes
    
}

    public function 
loginAction() {
         echo 
"login, redirected from "$this->_request->getParam("from") , " action";
    }
}
?>

以上例程的輸出類似于:

   login, redirected from Index action

返回值

return FALSE on failure

參見(jiàn)

  • Yaf_Request_Abstrace::getParam()