В Laravel 7 можно изменить возвращаемый ответ с информацией о том, что страница не найдена (Not Found), и вместо этого вернуть JSON-ответ. Для этого вы можете использовать механизм обработки исключений.
- В первую очередь, вам понадобится проверить наличие файла
Handler.php
вapp/Exceptions
директории вашего приложения Laravel. Если такого файла нет, создайте его.
- В открывшемся файле
Handler.php
найдите методrender
и замените его следующим кодом:
public function render($request, Throwable $exception) { // Проверяем, что исключение является моделью Not Found if ($exception instanceof ModelNotFoundException) { // Возвращаем JSON-ответ с кодом 404 и сообщением об ошибке return response()->json([ 'message' => 'The requested resource was not found' ], 404); } return parent::render($request, $exception); }
- Сохраните изменения в файле
Handler.php
.
Теперь, когда в вашем приложении происходит исключение ModelNotFoundException
, клиент будет получать JSON-ответ с сообщением об ошибке и кодом 404 вместо отображения стандартной страницы "Not Found".
Примечание:
ModelNotFoundException
- это исключение, возникающее, когда запрашиваемая модель не найдена в базе данных. Однако, вы можете заменить это исключение на свое собственное, в зависимости от ваших потребностей.- Вы также можете изменить сообщение и код ответа в JSON-ответе в соответствии с вашими требованиями.