laravel检查变量内容的最佳方法

时间:2017-12-28 00:39:16

标签: laravel

我有几个问题,第一个是: 检查变量是否包含数据库中的任何记录的最佳方法是什么。例如,当我想从集合中获得单行时:

 $variable->sth->first()->url 

我得到回复:

  

在null上调用第一个成员函数。

所以如果我会使用这样的东西:

@if($variable->sth->count() > 0) 
   code here 
@endif

这是对的吗?以及它们之间的区别 @if($variable->sth->count() > 0)@if(count($variable->sth)>0 @endif因为两者都有效,但并非总是

第二个问题是:为什么当我想从集合中获取一行并且当集合为空时会出现错误?但是当我使用foreach从db获取所有行时,当收集行是否为空时,不会出现任何内容。

第三个问题是:我应该何时检查,返回的数据是否为空?

我是新手,抱歉。

1 个答案:

答案 0 :(得分:0)

  

检查变量是否包含数据库中的任何记录的最佳方法是什么。

您可以使用dd()之类的laravel方法或使用var_dump()来查看变量的内容。

  

我得到回复:在null上调用第一个成员函数。

这是因为sth中的属性$variable为空,因此它不包含名为first()的函数或成员

  

为什么当我想从集合中获取一行时以及当集合为空时会出现错误?但是当我使用foreach从db获取所有行时,当收集行是否为空时,不会出现任何内容。

在做任何事情之前,Foreach会首先评估集合中是否有数据。您收到的错误是因为您访问的行可能不存在。在访问其数据之前,您需要首先评估集合是否为空

  

我应该何时检查,返回的数据是否为空?

在尝试使用之前