Я пытаюсь напечатать ошибки, которые обычно появляются на сером экране, но записываю их в HTML и показываю пользователю, как использовать систему.
Для этого я использую метод рендеринга и представление в папке resources / views / errors / error.php и делаю следующее:
public function render($request, Exception $e)
{
return response()->view('errors.error', [], 500);
}
Это фактически показывает мне, что у меня есть в файле error.php html, но я хочу показать пользователю фактическую обнаруженную ошибку.
Как я ? Помогите !!!
Прежде всего, вы должны подумать, действительно ли вы хотите показать пользователю детали ошибки. (Возможно нет). На самом деле, детали, которые вы видите на «сером экране», варьируются в зависимости от значения APP_DEBUG
в вашем .env
файл.
Обычно вы хотите скрыть от пользователей причину сбоя и вывести очень общее сообщение об ошибке. Для исключений HTTP обработчик исключений сделает это за вас: просто создайте блейд-файл для каждого http-кода, который вы хотите обработать (resources/views/errors/404.blade.php
например).
Если вы хотите это для целей отладки, есть лучшие инструменты. Проверка журнала ошибок является самой основной. Или используйте dd()
функция здесь и там, чтобы посмотреть на состояние некоторой переменной в любой точке.
Если вы действительно хотите это сделать, вы можете изменить app/Exceptions/Handler.php
файл, render
метод, как вы предлагаете
public function render($request, Exception $e)
{
return response()->view('errors.error', [
'error_message' => $e->getMessage()
], $code);
}
Других решений пока нет …