Php 无法在if语句中使用Laravel对象
我有一个奇怪的错误: 如果:Php 无法在if语句中使用Laravel对象,php,laravel,Php,Laravel,我有一个奇怪的错误: 如果: if($item->condition && $item->variable) { //do something } else { //do something else } 这给了我一个错误: Controller.php行9001中的ErrorException:正在尝试 获取非对象的属性 我使用dd()调试了两个变量: dd($item)->condition if($item->condition &&am
if($item->condition && $item->variable)
{
//do something
} else {
//do something else
}
这给了我一个错误:
Controller.php行9001中的ErrorException:正在尝试
获取非对象的属性
我使用dd()调试了两个变量:
dd($item)->condition
if($item->condition && $item->variable)
{
//do something
}
它返回0(如预期的那样)
它返回null(也是预期的)。因此,$item是一个对象,它包含0的变量条件和null的变量。然而,我仍然得到这个错误。如果我将数据库中的$item->variable
更改为“foobar”,那么dd($item->variable)
实际上将包含“foobar”
为什么我不能在这里使用if?我做错了什么?您可以使用
属性\u exists
检查$item
以确保该项存在
if(!isnull($item) && property_exists($item, 'condition') && property_exists($item, 'variable'))
{
//do something
}
您可以使用
属性\u exists
检查$item
以确保该项存在
if(!isnull($item) && property_exists($item, 'condition') && property_exists($item, 'variable'))
{
//do something
}
使用isset()函数
if(isset($item->condition) && isset($item->variable))
使用isset()函数
if(isset($item->condition) && isset($item->variable))
你可以用
if(!empty($item->condition) && !empty($item->variable))
它将检查变量是否已设置,并检查是否可以使用空值
if(!empty($item->condition) && !empty($item->variable))
它将检查变量是否已设置并检查空值如果显示如何传递$item,则效果会更好。尝试使用视图中的代码
@foreach($item as $i)
if($i->condition && $i->variable)
{
//do something
} else {
//do something else
}
@endforeach
如果您显示如何传递$item,则会更好。尝试使用视图中的代码
@foreach($item as $i)
if($i->condition && $i->variable)
{
//do something
} else {
//do something else
}
@endforeach
似乎
$item
不是对象
,或者为空
。您能否包含返回$item
的代码?它是一个有说服力的模型吗?似乎$item
不是对象
,或者是null
。您能否包含返回$item
的代码?这是一个有说服力的模式吗?