Laravel 4 – Обработка 404 с пользовательскими сообщениями

Согласно документам Laravel 4 я могу отправить 404 с пользовательским ответом:

App::abort(404, 'My Message'); 

Затем я могу обрабатывать все свои 404 с помощью настраиваемой страницы:

 App::missing(function($exception) { return Response::view('errors.missing', array(), 404); }); 

Как передать «Мое сообщение» на представление так же, как это делает общая страница ошибок Laravel.

Благодаря!

Вы можете поймать сообщение через параметр Exception

 App::missing(function($exception) { $message = $exception->getMessage(); $data = array('message', $message); return Response::view('errors.missing', $data, 404); }); 

Примечание. Код может быть уменьшен, я написал его вот так для ясности.

В Laravel 5 вы можете предоставить виды Blade для каждого кода ответа в каталоге /resources/views/errors . Например, ошибка 404 будет использовать /resources/views/errors/404.blade.php .

Что не упоминается в руководстве, так это то, что внутри представления у вас есть доступ к объекту $exception . Поэтому вы можете использовать {{ $exception->getMessage() }} чтобы получить сообщение, которое вы передали в abort() .