Как сделать чтобы при установке APP_DEBUG=false, появлялись сообщения эксепшнов?
Как в Laravel сделать чтобы при установке APP_DEBUG=false, появлялись сообщения эксепшнов? Сейчас просто возвращается Server Error - 500
Ответы (1 шт):
Автор решения: Condor
→ Ссылка
Для этого нужно настроить свой собственный обработчик исключений и выводить нужные данные. В своем обработчике, либо в дефолтном (App\Exceptions\Handler). Пример кастомного обработчика:
<?php
namespace App\Exceptions;
use Exception;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Symfony\Component\HttpKernel\Exception\HttpException;
class CustomExceptionHandler extends ExceptionHandler
{
public function render($request, Exception $exception)
{
if ($exception instanceof HttpException && !$this->isHttpException($exception)) {
if (!config('app.debug')) {
return response()->view('errors.custom', [
'message' => $exception->getMessage(),
], $exception->getStatusCode());
}
}
return parent::render($request, $exception);
}
}
В котором подключить вывод ошибки через blade шаблон, либо просто отдать в виде json:
return response()->json([
'message' => $exception->getMessage(),
], $exception->getStatusCode());