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()
显然执行查询。其他人不执行)
查询构建器如何处理 ->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()
显然执行查询。其他人不执行)