我正在尝试从数据库中获取列表,但页面显示错误“试图获取非对象的属性”请帮助我,我已经堆积在此,这里代码生成错误:{{1} }
及以下是它自己的文件的扩展代码。
$status = ($employee->Profile->date_of_leaving == null) ? '<span class="label label-success">active</span>' : '<span class="label label-danger">in-active</span>';
答案 0 :(得分:1)
当您调用非对象变量的属性(可能为null,字符串或其他类型)时,会发生此错误。在此代码中,您尝试获取date_of_leaving
的{{1}}属性,而$employee->Profile
不是对象。因此,您可以通过调用property_exists
函数来检查对象是否具有该属性:
$employee->Profile
这一行:
$status = (property_exists($employee, 'Profile') && property_exists($employee->Profile, 'date_of_leaving') && $employee->Profile->date_of_leaving == null) ? '<span class="label label-success">active</span>' : '<span class="label label-danger">in-active</span>';
答案 1 :(得分:0)
您提到的错误告诉我们您正在尝试获取不是对象的变量的属性。
产生错误的代码行是:
($employee->Profile->date_of_leaving == null)
$employee
和$employee->Profile
都可以返回null
但是在你的代码中,就在这一行之前,你写了:$designation = $employee->Designation;
,如果$employee
不是一个对象,它就会失败。
通过消除$employee->Profile
是脚本失败的原因。它可能没有设置或不是对象:)
答案 2 :(得分:0)
此错误是由于数据库中没有数据,但您尝试获取它,因此您需要在每个数据库中检查它是否为null。 我认为这段代码可以帮助你。
$status = (($employee->Profile) && ($employee->Profile->date_of_leaving)) ?
'<span class="label label-danger">in-active</span>' :
'<span class="label label-success">active</span>';