Как в ларавель 7 вернуть json вместо not found page?

В Laravel 7 можно изменить возвращаемый ответ с информацией о том, что страница не найдена (Not Found), и вместо этого вернуть JSON-ответ. Для этого вы можете использовать механизм обработки исключений.

1. В первую очередь, вам понадобится проверить наличие файла Handler.php в app/Exceptions директории вашего приложения Laravel. Если такого файла нет, создайте его.

2. В открывшемся файле 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);
}

3. Сохраните изменения в файле Handler.php.

Теперь, когда в вашем приложении происходит исключение ModelNotFoundException, клиент будет получать JSON-ответ с сообщением об ошибке и кодом 404 вместо отображения стандартной страницы "Not Found".

Примечание:
- ModelNotFoundException - это исключение, возникающее, когда запрашиваемая модель не найдена в базе данных. Однако, вы можете заменить это исключение на свое собственное, в зависимости от ваших потребностей.
- Вы также можете изменить сообщение и код ответа в JSON-ответе в соответствии с вашими требованиями.