Я думаю, что это должно быть реализовано по умолчанию, так как я работаю в маршрутах / api.php.
Я хочу дать 404 сообщение об ошибке json в случае, если мы не находим строки для данного id
спор о findOrFail()
метод.
Что-то вроде:
return response()->json(['status' => 'ERROR', 'error' => '404 not found'], 404);
Вместо по умолчанию Sorry, the page you are looking for could not be found.
лезвие страницы.
Я не хочу делать:
$item = Model::find($id);
if(is_null($item))
return response()->json(['status' => 'ERROR', 'error' => '404 not found'], 404);
Везде, когда я получаю id
и я не хотел бы реализовывать это в промежуточном программном обеспечении, так как это приведет к некоторой путанице в файле api.php.
Вы всегда можете поймать исключение в App \ Exceptions \ Handler.php
Импортируйте исключение в класс, используя следующее:
use \Illuminate\Database\Eloquent\ModelNotFoundException;
и в методе рендеринга добавьте
if ($e instanceof ModelNotFoundException) {
return response()->json([
'message' => 'Record not found',
], 404);
}
Просто добавлю, что я проверил эти три исключения:
И затем возвращает JSON, если ожидается:
if ($request->expectsJson()) {
return response()->json(['error' => $msg], $code);
}