В вашем методе обновления вы можете сделать следующее:
public function update($id)
{
MyModel::findOrFail($id);
//...perform other actions
}
Будет выдано 404 ответа, если запрошенный $id
не существует.
Тогда вы можете поймать его, если хотите, render()
метод app\Exceptions\Handler.php
:
use Illuminate\Database\Eloquent\ModelNotFoundException;
.
.
.
public function render($request, Exception $exception)
{
if ($exception instanceof ModelNotFoundException) {
if ($request->wantsJson()) {
return response()->json([
'data' => 'Resource not found'
], 404);
} else {
abort(404);
}
}
return parent::render($request, $exception);
}
Или, если вы не хотите проходить через все трудности настройки его в обработчике, вы также можете сделать:
public function update($id)
{
if (! $model = MyModel::find($id)) {
abort(404);
}
//...perform other actions with $model
}
Метод abort(404)
переводит пользователя на стандартную страницу Page not found
laravel, что является подходящей вещью.