Задать вопрос
Misanthropist
@Misanthropist
Web-developer

Почему не работает редирект в Zend Framework 2?

В контроллере метод есть метод manageAction().
В нем вызываю метод fillForm().
В методе fillForm() есть блок try...catch, в разделе catch которого добавляю сообщение об ошибке и редирект.
$this->flashMessenger()->addErrorMessage("Ошибка при работе с API v1.5.");
return $this->redirect()->toRoute('home');

Это согласно документации. И это не работает. Т.е. отрабатывает ViewModel экшена manageAction(), а не indexAction() как задано в роуте "home". Однако, если написать так:
$this->redirect()->toRoute('home');
$this->flashMessenger()->addErrorMessage("Ошибка при работе с API v1.5.");

все работает, как надо. И самое интересное, что если непосредственно в manageAction() вызвать
$this->flashMessenger()->addErrorMessage("Ошибка при работе с API v1.5.");
return $this->redirect()->toRoute('home');

тоже все работает.
  • Вопрос задан
  • 530 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
arutyunov
@arutyunov
Mooza.ru — Делаем сайты
А вы уверены, что catch срабатывает?
И то, что в $this у вас есть метод redirect()?

Проверьте дебагом, что у вас отрабатывает, а что нет.
Ответ написан
очевидно же, вы в методе fillForm возвращаете Responce, а делать return в manageAction кто будет?
public function manageAction()
{
    // ...
    $ret = $this->fillForm();
    if ($ret instanceof Response) {
        return $ret;
    }
    // ...
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы