Обратите внимание на несколько важных моментов:
- Класс App \ Exceptions \ Handler - это место, где все исключения, запускаемые вашим приложением, регистрируются и затем возвращаются пользователю. Этот класс имеет два метода report () и render () , оба имеют свою ответственность.
- Метод отчета *1013* используется для регистрации исключений. По умолчанию метод отчета передает исключение в базовый класс , где регистрируется исключение. Тем не менее, вы можете регистрировать исключения, как пожелаете. Например, если вам нужно сообщать о различных типах исключений по-разному, вы можете использовать оператор PHP instanceof сравнения
- Метод render отвечает за преобразование данного исключения в HTTP-ответ, который должен быть отправлен обратно в браузер. По умолчанию исключение передается в базовый класс, который генерирует для вас ответ. Однако вы можете проверить тип исключения или вернуть свой собственный ответ.
Как и в вашем случае, вы хотите вернуть пользовательское сообщение для исключения, внутри render () вы можете использовать оператор сравнения instanceof PHP и вернуть собственную логику.
Пример:
if($exception instanceof PostTooLargeException || $exception instanceof FileException){
return response()->json([
'error' => true,
'error_message' => "The file you are trying to upload exceeds the maximum limit. Please try to upload a smaller file."
],200);
}
Пройдите https://laravel.com/docs/5.6/errors, чтобы получить больше данных