laravel findOrFail firstOrFail
Not Found 异常
有时候你可能想要在模型找不到的时候抛出异常,这在路由或控制器中非常有用,findOrFail
和 firstOrFail
方法会获取查询到的第一个结果。不过,如果没有任何查询结果,Illuminate\Database\Eloquent\ModelNotFoundException
异常将会被抛出:
$model = App\Flight::findOrFail(1); //一定要使用model $model = App\Flight::where('legs', '>', 100)->firstOrFail();
如果异常没有被捕获,那么 HTTP 404
响应将会被发送给用户,所以在使用这些方法的时候没有必要对返回 404 响应编写额外的检查:
Route::get('/api/flights/{id}', function ($id) { return App\Flight::findOrFail($id); });