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

时间:2013-12-05 11:53:13

标签: php zend-framework redirect zend-framework2

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以这种方式处理重定向?

1 个答案:

答案 0 :(得分:5)

您必须从Redirect Plugin

返回响应对象
return $this->redirect()->toUrl('/auth?page=' . urlencode($_SERVER['REQUEST_URI']));