Php Zend 2重定向(错误或功能)?

Php Zend 2重定向(错误或功能)?,php,zend-framework,redirect,zend-framework2,Php,Zend Framework,Redirect,Zend Framework2,Zend 2似乎在调用时不直接执行重定向->tour 我有以下代码: public function onBootstrap(\Zend\Mvc\MvcEvent $e) { $em = $e->getApplication()->getEventManager(); $em->attach(\Zend\Mvc\MvcEvent::EVENT_DISPATCH, array($this, 'onDispatch')); } public function on

Zend 2似乎在调用时不直接执行重定向->tour

我有以下代码:

public function onBootstrap(\Zend\Mvc\MvcEvent $e) {
    $em = $e->getApplication()->getEventManager();
    $em->attach(\Zend\Mvc\MvcEvent::EVENT_DISPATCH, array($this, 'onDispatch'));
}

public function onDispatch(\Zend\Mvc\MvcEvent $e) {
    $auth = new \Auth\Model\AuthModel($this->sql, $this->config);

    if (!$auth->isLoggedin()) {
        $this->redirect()->toUrl('/auth?page=' . urlencode($_SERVER['REQUEST_URI']));
        //return false;
    }
    parent::onDispatch($e);
}
因此,如果我运行上述代码,它不会直接重定向调用。Zend似乎首先执行控制器操作和视图,然后执行重定向。但如果我做了一个虚假的回报;调用重定向后,重定向按预期工作


知道zend为什么用这种方式处理重定向吗?

您必须从


您必须从

return $this->redirect()->toUrl('/auth?page=' . urlencode($_SERVER['REQUEST_URI']));