Я хочу, чтобы мой контроллер возвращает ответ 404, когда модель не найдена, и я хочу, чтобы указать пользовательское сообщение, а не по умолчанию «The requested controller was unable to dispatch the request.
»Zend Framework 2: установить причины фраза для ошибки 404
Я попытался указав reason
в ViewModel
, установив reasonPhrase
из объекта ответа ... ничего не работает. В настоящее время я изучаю, как я могу предотвратить поведение по умолчанию, но если кто-то знает, прежде чем я это сделаю, это будет просто здорово. (Может быть, есть лучший путь, чем тот, который я нашел бы в любом случае, тоже.)
Вот что у меня есть, что не работает:
$userModel = $this->getUserModel();
if (empty($userModel)) {
$this->response->setStatusCode(404);
$this->response->setReasonPhrase('error-user-not-found');
return new ViewModel(array(
'content' => 'User not found',
));
}
Спасибо.
"Запрошенный контроллер не смог направить запрос." возвращается не найденным обработчиком страницы, а не вашим контроллером. – imel96
См. Шаблон 404. Если вы используете модуль приложения, см. Приложение/view/error/404.phtml switch ($ this-> reason) {...} –
@ dphn, да, дело в том, что я задал причину в контроллере, и она становится переопределенной между фазой рендеринга. –