• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • Yaf_Controller_Abstract::forward()

    (Yaf >=1.0.0)

    The forward purpose

    说明

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