Laravel:查询构建器如何处理 ->first()?

Laravel: How does the query builder handle ->first()?

查询构建器如何处理 ->first()

它是简单地执行 Limit 1 还是执行一些高级检查以确保是否仅返回 1 行?

在极少数情况下,应用程序可能希望确保仅返回 1 行。也许 ->first() 不是最好的解决方案?

非常感谢任何见解或方向!

first() 方法将始终 return 一个结果或 null 如果没有找到结果。这是它的全部功能:

public function first($columns = array('*'))
{
    $results = $this->take(1)->get($columns);

    return count($results) > 0 ? reset($results) : null;
}

与仅使用 take(1)(或 limit(1))的区别在于它实际上只是 return 一个结果对象,通过调用 reset()。 (此外,first() 显然执行查询。其他人不执行)