Once you have created a Eloquent model and its associated database table, you can start retrieving data from your database. Think of each Eloquent model as a powerful query builder allowing you to fluently query the database table associated with the model. Of course, in addition to retrieving all of the records for a given table, you may also retrieve single records using find
or first
. Instead of returning a collection of models, these methods return a single model instance:
<?php use App\Product; // Retrieve a model by its primary key... $product = Product::find(1); // Retrieve the first model matching the query constraints... $product = Product::where('active', 1)->first();
You may also call the find method with an array of primary keys, which will return a collection of the matching records:
<?php use App\Product; // Retrieve models by array of primary keys... $products = Product::find([1, 2, 3]);
Not Found Exceptions
Sometimes you may wish to throw an exception if a model is not found. This is particularly useful in routes or controllers. The findOrFail
and firstOrFail
methods will retrieve the first result of the query; however, if no result is found, a Illuminate\Database\Eloquent\ModelNotFoundException
will be thrown:
$model = Product::findOrFail(1);
$model = Product::where('legs', '>', 100)->firstOrFail();
If the exception is not caught, a 404
HTTP response is automatically sent back to the user. It is not necessary to write explicit checks to return 404
responses when using these methods:
Route::get('/api/products/{id}', function ($id) {
return Product::findOrFail($id);
});
If you have any other questions, experience or insights on "Laravel Eloquent Query Retrieving Single Models" please feel free to leave your thoughts in the comments bellow which might be helpful to someone!
Be the first one to write a response :(
{{ reply.member.name }} - {{ reply.created_at_human_readable }}