Zend_Controller_Request :: setRedirect () не работает? - PullRequest
0 голосов
/ 02 августа 2010

Я не уверен, что вызов setRedirect из объекта ресурса - лучший способ.но мне интересно, почему это, похоже, ничего не делает.У меня есть это в плагине контроллера predispatch

function preDispatch(Zend_Controller_Request_Abstract $req) {
    ...
    if (!$acl->isAllowed($role, $resource, $privilege)) {  
        ...
        $res = $this->_response;
        $res->setRedirect('/error/?error-handler=unauthorized', 403);
    }
}

, если вы предпочитаете весь код, получите его @ pastebin

1 Ответ

4 голосов
/ 02 августа 2010

setRedirect() не останавливает выполнение диспетчерского цикла. Для перенаправления необходимо отправить заголовки и выйти из процесса.

$res->setRedirect('/error/?error-handler=unauthorized', 403);
$res->sendHeaders();
exit();

Лучше было бы использовать перенаправитель Zend_Controller_Action_HelperBroker::getStaticHelper('Redirector')->gotoUrl()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...