控制器插件中的zend _forward

Ash*_*ley 1 php zend-framework

我有一个控制器插件,检测网站是否已设置为维护,如果有,我希望它_forward到维护控制器显示'抱歉...'消息.

我不想使用重定向,因为这将更改用户所在的当前URL,但_forward是一个Zend_Controller_Action受保护的方法,所以不能在上下文之外调用,我该怎么做?

Ned*_*dec 6

preDispatch调用插件的方法时,不会调度请求.因此,您只需在请求上设置控制器和操作即可"转发":

public function preDispatch(Zend_Controller_Request_Abstract $request)
{
    if ($this->isMaintenanceMode()) {
        $request->setControllerName('error');
        $request->setActionName('maintenance');
    }
}
Run Code Online (Sandbox Code Playgroud)