我有一组空数据,在我的刀片模板中,我通过以下方式检查:
@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;显示。
答案 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;
}
}
上述代码会抛出相同的错误,因为1
,2
和3
不是对象。
答案 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;
}
}