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>';