Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 刀片模板中的If语句?_Laravel_Laravel 4 - Fatal编程技术网

Laravel 刀片模板中的If语句?

Laravel 刀片模板中的If语句?,laravel,laravel-4,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甚至不应该运行。为什么会这样 我已选中并显示“它为空”。如果为空块仅检查$

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

@if(empty($data))
   It's empty!
@else
   @foreach($data as $asset)
      $asset->alt
   @endforeach
@endif
问题是,我得到了一个错误:

Trying to get property of non-object
但这甚至不应该发生,因为if语句的else甚至不应该运行。为什么会这样


我已选中并显示“它为空”。

如果为空块仅检查
$data
是否为空,它不能确保数组中的项是实际对象

以这段PHP代码为例:

$data = [1, 2, 3];

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

上述代码将抛出相同的错误,因为
1
2
3
不是对象。

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

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

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

$asset->alt
错误,应该是:
{{{$asset->alt}
。看起来资产不是一个对象。所以我认为它是空的。美元资产的价值是多少?啊,这只是问题的一个输入错误。关键是else甚至不应该运行,但它是,如果数据是我控制器中的一个对象,那么它也是。为什么它不在我的视图中?@panthro
$data
在您的视图中是一个对象/数组。
$data
数组中的单个项不是对象。@panthro-从哪里获得该数组?