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


Zend 2 redirect (bug or feature)?

Zend 2似乎不会直接执行"重定向()->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似乎首先通过控制器操作和视图,然后执行重定向。但是,如果我在调用"重定向"后执行了"return false;",重定向将按预期工作。

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

您必须从重定向插件返回响应对象

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