从ZEND框架2 Controller的构造函数重定向

sud*_*hir 4 php zend-framework2

我想user id在我的ZF2控制器的构造函数中检查,如果它没有定义,那么想要重定向到URL我尝试的任何外部或其他控制器:

$this->redirect()->toRoute("campaign");
Run Code Online (Sandbox Code Playgroud)

$this->redirect()->toUrl("http://example.com");
Run Code Online (Sandbox Code Playgroud)

这两种方法都给我相同的错误信息:

Url插件要求控制器事件组成路由器; 没有找到

ars*_*jaz 8

Service LocatorController构造函数中不存在,但您可以覆盖onDispatch从中继承的方法AbstractActionController.像这样使用它:

public function onDispatch(\Zend\Mvc\MvcEvent $e)
    {
        $session = new \Zend\Session\Container('base');
            if(!$session->offsetExists('id'))
            $this->redirect()->toRoute("campaign"); and $this->redirect()->toUrl("http://example.com")

        return parent::onDispatch($e);
    }
Run Code Online (Sandbox Code Playgroud)