В документации написано, что чтобы сделать кастомные страницы с ошибками, достаточно создать каталог resources/views/errors, а в нем файлы вида 404.blade.php
https://laravel.com/docs/5.5/errors#custom-http-error-pages
Я сделал так, насоздавал в resources/views/errors файлы:
404.blade.php
419.blade.php
429.blade.php
500.blade.php
503.blade.php
layout.blade.php
Но проблема в том, что все равно показываются стандартные страницы с ошибкой. Сбросил все виды кеша - толку никакого.
Нашел еще решение, что для того, чтобы эти страницы заработали, нужно изменить метод render() в файле app/Exceptions/Handler.php:
public function render($request, Exception $exception) {
info("In Exception render");
// Отрисовка самодельных страниц с ошибками
if ($this->isHttpException($exception)) {
info("Detect Exception with code ".$exception->getStatusCode());
if (view()->exists('errors.' . $exception->getStatusCode())) {
return response()->view('errors.' . $exception->getStatusCode(), [], $exception->getStatusCode());
}
}
return parent::render($request, $exception);
}
Но проблема в том, что когда происходит ошибка, например 404, до этого метода render() дело не доходит. Строки «In Exception render» в логе не появляется, и рисуется стандартная страница.
Вопрос: как правильно сделать свои собственные страницы об ошибке?