如果刀片模板中的陈述?

时间:2014-07-14 13:45:01

标签: laravel laravel-4

我有一组空数据,在我的刀片模板中,我通过以下方式检查:

@if(empty($data))
   It's empty!
@else
   @foreach($data as $asset)
      $asset->alt
   @endforeach
@endif

问题是,我收到错误:

Trying to get property of non-object

但这甚至不应该发生,因为if语句的else甚至不应该运行。为什么会这样?

我已经检查过了,它已经空了#39;显示。

3 个答案:

答案 0 :(得分:1)

if-empty块仅检查$data是否为空,但不能确保数组中的项是实际对象。

以此PHP代码为例:

$data = [1, 2, 3];

if (empty($data))
{
   echo "It's empty!";
}
else
{
   foreach ($data as $asset)
   {
      echo $asset->alt;
   }
}

上述代码会抛出相同的错误,因为123不是对象。

答案 1 :(得分:1)

您可以使用

@if(count($data))
   @foreach($data as $asset)
      {{$asset->alt}}
   @endforeach
@else
   It's empty!
@endif

答案 2 :(得分:0)

您可以将$data与null进行比较

if ($data == null)
{
   echo "It's empty!";
}
else
{
   foreach ($data as $asset)
   {
      echo $asset->alt;
   }
}