Skip to content

Querying Models

Query models in Elasticsearch using the same Eloquent-style syntax you’re familiar with


All

Retrieve all records for a given model:

$products = Product::all();

Equivalent to get() without clauses.

$products = Product::get();

Find

As with Eloquent, you can use the find method to retrieve a model by its primary key (id). The method will return a single model instance or null if no matching model is found.

$product = Product::find('IiLKG38BCOXW3U9a4zcn');

Find the product with id of IiLKG38BCOXW3U9a4zcn and return the model collection, or null if it does not exist.

$product = Product::findOrFail('IiLKG38BCOXW3U9a4zcn');

Find the product with id of IiLKG38BCOXW3U9a4zcn and return the model collection, or throw a ModelNotFoundException if no result is found.


First

As with Eloquent, you can use the first method to retrieve the first model that matches the query. The method will return a single model instance or null if no matching model is found.

$product = Product::where('status',1)->first();

Find the first product with a status of 1 and return the model collection if it exists.

$product = Product::where('status',1)->firstOrFail();

Find the first product with a status of 1 and return the model collection, or throw a ModelNotFoundException if no result is found.


Get

As with Eloquent, you can use the get method to retrieve all models that match the query. The method will return a model collection or an empty collection if no matching models are found.

$product = Product::where('status',1)->get();
{
"index":"products",
"body":{
"query":{
"match":{
"status":1
}
},
"_source":[
"*"
]
}
}