Laravel “如何解决错误”;试图获取非对象的属性“;论拉威尔
我正试图从数据库中获取列表,但页面显示错误“试图获取非对象的属性”请帮助我,我在这上面被累加了,这里的代码出错:Laravel “如何解决错误”;试图获取非对象的属性“;论拉威尔,laravel,error-handling,Laravel,Error Handling,我正试图从数据库中获取列表,但页面显示错误“试图获取非对象的属性”请帮助我,我在这上面被累加了,这里的代码出错:$status=($employee->Profile->date\u of_leaving==null)?'活动':'处于活动' 下面是文件本身的扩展代码 foreach ($employees as $employee){ $designation = $employee->Designation; $status = ($em
$status=($employee->Profile->date\u of_leaving==null)?'活动':'处于活动'代码>
下面是文件本身的扩展代码
foreach ($employees as $employee){
$designation = $employee->Designation;
$status = ($employee->Profile->date_of_leaving == null) ? '<span class="label label-success">active</span>' : '<span class="label label-danger">in-active</span>';
$linkToEdit = "<a href='employee/$employee->id/edit' class='DTTT_button_small'> <i class='fa fa-edit'></i></a>";
$linkToDelete = "<a href='employee/$employee->id/delete/$token' class='DTTT_button_small alert_delete'> <i class='fa fa-trash-o'></i></a>";
$linkToView = "<a href='employee/$employee->id' class='DTTT_button_small'> <i class='fa fa-share'></i></a>";
$Option = "$linkToView $linkToEdit $linkToDelete";
$col_data[] = array(
($employee->Profile->employee_code != '') ? $employee->Profile->employee_code : 'Not assigned' ,
$employee->first_name,
$employee->last_name,
$employee->username,
$employee->email,
$designation->designation,
$status,
$Option);
}
foreach($employees as$employees){
$designation=$employee->designation;
$status=($employee->Profile->date\u of_leaving==null)?“active”:“in active”;
$linkToEdit=“”;
$linkToDelete=“”;
$linkToView=“”;
$Option=“$linkToView$linkToEdit$linkToDelete”;
$col_data[]=数组(
($employee->Profile->employee_代码!='')?$employee->Profile->employee_代码:“未分配”,
$employee->first_name,
$employee->last_name,
$employee->username,
$employee->email,
$designation->designation,
$status,
美元期权);
}
当调用非对象(可能为null、字符串或其他类型)的变量的属性时,发生此错误。在此代码中,您尝试获取$employee->Profile
的离开日期属性,并且$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>';
您提到的错误告诉我们,您正在尝试获取一个不是对象的变量的属性
产生错误的代码行是:
($employee->Profile->离职日期==null)
$employee
和$employee->Profile
都可以返回null
但在代码中,就在这一行之前,您写道:$designation=$employee->designation
如果$employee
不是对象,则会失败
通过消除$employee->Profile
是脚本失败的原因。它可能未设置或不是对象:)此错误是由于数据库中没有数据,但您正在尝试获取数据,因此需要检查每个数据库中的数据是否为空。
我认为这个代码对你有帮助
$status = (($employee->Profile) && ($employee->Profile->date_of_leaving)) ?
'<span class="label label-danger">in-active</span>' :
'<span class="label label-success">active</span>';
$status=($employee->Profile)&&($employee->Profile->date\u离开))?
“处于活动状态”:
"积极",;
展示你是如何获得$employees的你是什么意思?($employee->Profile->employee_代码!='')$员工->个人资料->员工代码:'未分配',$employee->名字,$employee->姓氏,dang,我迟到了两分钟:/Hi,谢谢你的解决方案,但我在尝试时遇到了这个错误,“语法错误,意外的'$employee'(T_变量)”是的,你是对的。我更新我的答案。请重试。非常感谢,但我遇到了另一个错误:尝试获取行的非对象属性以显示值:($employee->Profile->employee\u code!='')$员工->个人资料->员工代码:'未分配',$employee->名字,$employee->姓氏,你能建议写正确的方法吗?谢谢你可以用同样的条件<代码>(属性存在($employee,'Profile')&&property存在($employee->Profile,'employee\u code')&&&employee->Profile->employee\u code!=“”)$employee->Profile->employee_code:'未分配',
谢谢您的帮助,但我在不同的行中得到了none property对象。($employee->Profile->employee_代码!='')$员工->个人资料->员工代码:'未分配',$employee->名字,$employee->姓氏仍然不走运:(,我是否也应该更改此行?是的,将该行更改为尝试此行:-($employee->个人资料)&&($employee->个人资料->员工代码)?($employee->个人资料)&&($employee->个人资料->员工代码)?$employee->Profile->employee_代码:'':'active';很好,谢谢你们和@Mohammad Hamedani的帮助。谢谢Robin的解释。
$status = (($employee->Profile) && ($employee->Profile->date_of_leaving)) ?
'<span class="label label-danger">in-active</span>' :
'<span class="label label-success">active</span>';