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-从哪里获得该数组?