这可能是一个微不足道的问题,但我想知道Laravel是否推荐了一种特定的方法来检查从$result = Model::where(…)->get()返回的Eloquent集合是否为空,以及计算元素的数量。
我们目前正在使用!$result来检测空结果,这足够了吗?至于count($result),它实际上涵盖了所有情况,包括空结果吗?
这可能是一个微不足道的问题,但我想知道Laravel是否推荐了一种特定的方法来检查从$result = Model::where(…)->get()返回的Eloquent集合是否为空,以及计算元素的数量。
我们目前正在使用!$result来检测空结果,这足够了吗?至于count($result),它实际上涵盖了所有情况,包括空结果吗?
当前回答
我觉得还是用旧的比较好
$result->isEmpty();
如果集合为空,isEmpty方法返回true;否则, 返回False。
其他回答
in_array()检查数组中是否存在某个值。
public function isAbsolutelyEmpty($value)
{
return in_array($value, ["", "0", null, 0, 0.0], true);
}
我觉得还是用旧的比较好
$result->isEmpty();
如果集合为空,isEmpty方法返回true;否则, 返回False。
所以Laravel实际上是在使用Model::all()时返回一个集合; 你不想要一个集合,你想要一个数组,所以你可以类型设置它。 (数组)模型:所有();然后可以使用array_filter返回结果
$models = (array)Model::all()
$models = array_filter($models);
if(empty($models))
{
do something
}
这也将允许您执行count()之类的操作。
我觉得你可以试试
@if(!$result->isEmpty())
// $result is not empty
@else
// $result is empty
@endif
或者也可以用
if (!$result) { }
if ($result) { }
你可以这样做
$result = Model::where(...)->count();
计算结果。
你也可以使用
if ($result->isEmpty()){}
检查结果是否为空。