Php 从ZEND framework 2控制器重新定向';s构造函数

Php 从ZEND framework 2控制器重新定向';s构造函数,php,zend-framework2,Php,Zend Framework2,我想在我的ZF2控制器的构造函数中检查用户id,如果未定义,则想重定向到任何外部URL或我尝试过的其他控制器: $this->redirect()->toRoute("campaign"); 及 两种方法都会给我相同的错误信息: Url插件要求控制器事件组成路由器;找不到 控制器的构造函数中不存在服务定位器,但您可以重写从AbstractActionController继承的onDispatch方法。 像这样使用它: public function onDispatch(\Zend

我想在我的ZF2控制器的构造函数中检查
用户id
,如果未定义,则想重定向到任何外部
URL
或我尝试过的其他控制器:

$this->redirect()->toRoute("campaign");

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

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


控制器的构造函数中不存在
服务定位器
,但您可以重写从
AbstractActionController
继承的
onDispatch
方法。 像这样使用它:

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);
    }
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);
    }