转发到另一个动作

# Yaf_Controller_Abstract::forward

(Yaf >=1.0.0)

Yaf_Controller_Abstract::forward — 转发到另一个动作

### 说明

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

转发当前处理过程到其他动作。

> 注意:

> 此方法不会立即切换到目标操作，而是会在当前流程结束后发生。

### 参数

`module`

  目标模块名称，如果是 NULL，则采用默认模块名

`controller`

  目标控制器名称

`action`

  目标动作名称

`paramters`

  调用参数

### 返回值

成功时返回 `true`， 或者在失败时返回 `false`。

### 示例

示例 #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 动作
                 return FALSE;  // 这非常重要，这会结束当前工作流
                                // 然后告诉 Yaf 不要自动渲染
             }

             // other processes
        }

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

以上示例的输出类似于：

    login, redirected from Index action

### 参见

- Yaf_Request_Abstrace::getParam()

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open