当我尝试通过父表“staff”从工资表访问时,尝试读取属性“basic_salary”为空时出错Laravel 9

mbjcgjjk  于 2022-12-01  发布在  其他
关注(0)|答案(1)|浏览(123)

在“员工”模型中

public function payroll(){
        return $this->hasOne(Payroll::class);
    }

在“工资单”模型中

public function staff(){
        return $this->belongsTo(Staff::class);
    }

当我尝试访问Blade文件中特定“staff”的工资单属性时,

<td>{{ $item->payroll->basic_salary }}</td>

如果“staff”有工资单记录,它工作正常,但是如果staff没有工资单记录,我会得到下面错误:

试图读取空值的属性“basic_salary”

起初,我没有“工资单”模型中描述的关系,但后来我做到了,什么也没有改变

xiozqbni

xiozqbni1#

如果你使用的是php版本8或更高版本,你可以使用nullsafe operator,如下所示:

<td>{{ $item->payroll?->basic_salary ?? 'defaultValue' }}</td>

但是如果php版本低于8,你可以这样做来检查payroll是否存在:

<td>{{ $item->payroll ? $item->payroll->basic_salary : 'defaultValue' }}</td>

相关问题