需要检查laravel中的对象是否为空

prg*_*grm 9 php laravel blade

我通过执行一个雄辩的查询创建一个视图,然后将其传递给Blade.

@if($contacts != null)
//display contacts
@else
You dont have contacts
@endif
Run Code Online (Sandbox Code Playgroud)

但是它总是假设$ contacts有一些东西,即使查询没有给我任何东西.

我做了dd($contacts)并得到:

Collection {#247 ?
  #items: []
}
Run Code Online (Sandbox Code Playgroud)

如何检查它是否为空?

gsu*_*008 28

如果它是一个Eloquent Collection,因为它似乎来自你的例子,你可以使用isEmpty集合助手函数;

@if(!$contacts->isEmpty())
//display contacts
@else
You dont have contacts
@endif
Run Code Online (Sandbox Code Playgroud)

馆藏文档


Ale*_*nin 9

有几种方法:

if (!empty($contacts))

if (!contacts->isEmpty())

if (count($contacts) > 0)

if ($contacts->count() > 0)
Run Code Online (Sandbox Code Playgroud)

  • 你会在 PHP 7.2+ 上遇到 `count($contacts) > 0` 的问题 (3认同)

小智 5

口才查询会返回结果数组,因此您可以使用count

@if(count($contacts) > 0)
//Display contacts
@else
//No contacts
@endif
Run Code Online (Sandbox Code Playgroud)


Md.*_*leb 5

$contacts是空的。Bcoz您的查询无法获取数据。一旦查询无法获取数据,它将返回一个空的arrya。所以检查一下

    @if($contacts->isEmpty())
    {{ 'Empty' }} 
    @else
   {{ 'you have data' }}
    @endif
Run Code Online (Sandbox Code Playgroud)