Laravel 5.5 теперь содержит страницы ошибок для различных кодов состояния HTTP, включая 404. И использует эти страницы ошибок, если у вас нет пользовательских страниц ошибок.
Если вы проверите папку laravel\framework\src\Illuminate\Foundation\Exceptions\views
, вы получите эти страницы ошибок. И они отсутствовали в v5.4.
Вы можете проверить официальную документацию , чтобы настроить страницу 404 для своих нужд.
Когда Laravel генерирует исключение NotFoundHttpException
, оно обрабатывается методом рендеринга в классе App\Exceptions\Handler
. Затем, в зависимости от исключения, здесь готовится ответ. И для этого конкретного исключения Laravel готовит ответ, используя файл представления ошибок 404.
Например, если вы удалите файл vendor\laravel\framework\src\Illuminate\Foundation\Exceptions\views\404.blade.php
, вы получите исключение и трассировку стека, отображаемую whoops. При условии, что у вас тоже нет файла resources\views\errors\404.blade.php
.
Поэтому, если вы хотите перехватить исключение NotFoundHttpException
, вы можете сделать это из метода render
в App\Exceptions\Handler
классе:
if ($exception instanceof NotFoundHttpException) {
throw $exception;
} else {
return parent::render($request, $exception);
}