这可能是一个微不足道的问题,但我想知道Laravel是否推荐了一种特定的方法来检查从$result = Model::where(…)->get()返回的Eloquent集合是否为空,以及计算元素的数量。
我们目前正在使用!$result来检测空结果,这足够了吗?至于count($result),它实际上涵盖了所有情况,包括空结果吗?
这可能是一个微不足道的问题,但我想知道Laravel是否推荐了一种特定的方法来检查从$result = Model::where(…)->get()返回的Eloquent集合是否为空,以及计算元素的数量。
我们目前正在使用!$result来检测空结果,这足够了吗?至于count($result),它实际上涵盖了所有情况,包括空结果吗?
当前回答
你可以使用:$counter = count($data);
其他回答
in_array()检查数组中是否存在某个值。
public function isAbsolutelyEmpty($value)
{
return in_array($value, ["", "0", null, 0, 0.0], true);
}
我想你正在寻找:
$result->isEmpty()
这与empty($result)不同,后者不会为真,因为结果将是一个空集合。您建议的count($result)也是一个很好的解决方案。我在文件里找不到任何参考资料
您需要检查count()的这两种情况。
#1
如果结果只包含来自数据库的单行(一条记录),则使用->first()。
if(count($result)) {
// record is exist true...
}
#2
如果结果包含多行(多条记录),则使用->get()或->all()。
if($result->count()) {
//record is exist true...
}
你可以这样做
$result = Model::where(...)->count();
计算结果。
你也可以使用
if ($result->isEmpty()){}
检查结果是否为空。
根据Laravel文档,你可以这样使用:
$result->isEmpty();
如果集合为空,isEmpty方法返回true;否则返回false。