Как сделать чтобы при установке 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());
→ Ссылка