(Yaf >=1.0.0)
Yaf_Controller_Abstract::forward — 将当前请求转发到另一个动作
$controller, string $action, ?array $parameters = ?): ?bool$module,$controller,$action,$parameters = ?将当前请求转发到另一个动作。目标根据参数的数量和类型确定:
action:转发到当前控制器的另一个动作。controller 和 action:转发到另一个控制器。module、controller 和 action:转发到另一个模块。parameters 数组携带调用参数,可以通过 Yaf_Request_Abstract::getParam() 获取。注意:
此方法不会立即切换到目标动作,切换会在当前流程结束后发生。 如果想立即交出控制权,请从当前动作方法中返回 (返回
false还会告诉 Yaf 不要自动渲染当前视图)。
module目标模块名。如果指定了当前模块,则原样使用。
controller目标控制器名。
action目标动作名。
parameters目标动作的调用参数,可以通过 Yaf_Request_Abstract::getParam() 获取。
示例 #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 不要自动渲染
}
// 其他处理
}
public function loginAction() {
echo "login, redirected from ", $this->_request->getParam("from") , " action";
}
}
?>以上示例的输出类似于:
login, redirected from Index action