这可能是一个微不足道的问题,但我想知道Laravel是否推荐了一种特定的方法来检查从$result = Model::where(…)->get()返回的Eloquent集合是否为空,以及计算元素的数量。

我们目前正在使用!$result来检测空结果,这足够了吗?至于count($result),它实际上涵盖了所有情况,包括空结果吗?


当前回答

Laravel中给出了几种检查结果计数/检查空/不空的方法:

$result->isNotEmpty(); // True if result is not empty.
$result->isEmpty(); // True if result is empty.
$result->count(); // Return count of records in result.

其他回答

我觉得你可以试试

  @if(!$result->isEmpty())
         // $result is not empty
    @else
        // $result is empty
    @endif

或者也可以用

if (!$result) { }
if ($result) { } 

我同意以上认可的答案。但通常我使用$results->isNotEmpty()方法如下所示。

if($results->isNotEmpty())
{
//do something
}

它比if(!results->isEmpty())更冗长,因为有时我们会忘记添加'!',这可能会导致不必要的错误。

注意,这个方法从5.3版本开始就存在了。

根据Laravel文档,你可以这样使用:

$result->isEmpty();

如果集合为空,isEmpty方法返回true;否则返回false。

您需要检查count()的这两种情况。

#1

如果结果只包含来自数据库的单行(一条记录),则使用->first()。

if(count($result)) {
    // record is exist true...
}

#2

如果结果包含多行(多条记录),则使用->get()或->all()。

if($result->count()) {
    //record is exist true...
}

你可以使用:$counter = count($data);