У меня APP_DEBUG=true
в файле .env
:
APP_ENV=local APP_DEBUG=true APP_LOG_LEVEL=debug APP_URL=http://test.dev
Я намеренно использовал неправильный неправильный URL (например: test.dev/asdsadsa
), который не содержится в файле маршрута web.php.
Я ожидал получить ошибку отладки laravel, когда маршрут не существует
Sorry, the page you are looking for could not be found. NotFoundHttpException in RouteCollection.php line 161:
Однако он продолжает показывать страницу ошибок 404 (views / errors / 404.blade.php), даже для APP_DEBUG
установлено значение true.
То, что я пробовал:
1 – Я даже проверял, чтобы laravel мог читать файл .env:
Route::get('/', function() { dd(env('APP_DEBUG')); });
return true
2 – php artisan config:cache
не исправил.
3 – chmod -R 777 storage
не исправило его.
если у вас есть страница ошибки 404 в views/errors
она будет отображаться, а если нет, NotFoundHttpException
.
Просто добавьте эти две строки в свой вид ошибки, например, в views\errors\404.blade.php
<?php $e = new Symfony\Component\Debug\ExceptionHandler(); ?> <?php echo getenv('APP_DEBUG') == 'true' ? $e->getContent(Symfony\Component\Debug\Exception\FlattenException::create($exception)) : ''; ?>
Это покажет ошибку отладки laravel на вашей странице ошибок 404.
Удалить убедитесь, что в вашем App\Exceptions\Handler
нет в $dontReport
этой строки:
'Symfony\Component\HttpKernel\Exception\HttpException'
ознакомьтесь с документацией: https://laravel.com/docs/5.3/errors#the-exception-handler
и найти:
Игнорирование исключений по типу
Свойство $ dontReport обработчика исключений содержит массив типов исключений, которые не будут регистрироваться. Например, исключения из 404 ошибок, а также несколько других типов ошибок не записываются в ваши файлы журналов. Вы можете добавить другие типы исключений в этот массив по мере необходимости