Reputation: 1554
How does the query builder handle ->first()
?
Does it simply do a Limit 1
or does it do some advanced checking to make sure if only 1 row is returned?
In rare cases, the application may want to ensure that ONLY 1 row will be returned. Perhaps ->first()
is not the best solution?
Any insight or direction is greatly appreciated!
Upvotes: 2
Views: 4603
Reputation: 152900
The first()
method will always return one result or null
if no results are found. Here's all it does:
public function first($columns = array('*'))
{
$results = $this->take(1)->get($columns);
return count($results) > 0 ? reset($results) : null;
}
The difference to just using take(1)
(or limit(1)
) is that it actually just returns one result object, by calling reset()
. (Also, first()
obviously executes the query. The others don't)
Upvotes: 10