Zend 2似乎执行“redirect() - > toUrl()”如果被调用则不直接执行。
我有以下代码:
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似乎首先通过Controller Actions和Views然后执行重定向。但是,如果我做“返回假”;在我调用“重定向”之后,重定向按预期工作。
知道为什么zend以这种方式处理重定向?
答案 0 :(得分:5)
您必须从Redirect Plugin
返回响应对象return $this->redirect()->toUrl('/auth?page=' . urlencode($_SERVER['REQUEST_URI']));