В моем проекте Laravel -5.8 я пытаюсь получить доступ к блейду представления представления
Контроллер
public function show($id)
{
if (! Gate::allows('employee_show')) {
return abort(401);
}
try {
return view('hr.employees.show', ['employee' => HrEmployee::findOrFail($id)]);
} catch (Exception $exception) {
Session::flash('error', 'Action failed! Please try again');
return back();
}
}
Модель
class HrEmployee extends Model
{
public $timestamps = false;
protected $table = 'hr_employees';
protected $primaryKey = 'id';
protected $fillable = [
'id',
'employee_code',
'company_id',
'email',
'line_manager_id',
'employee_designation_id',
'employee_grade_level_id',
'employee_category_id',
'employee_type_id',
'employement_type_id',
'work_location_id',
'employment_date',
'first_name',
'last_name',
'local_government_id',
'nationality_id',
'other_name',
'is_hod',
'department_id',
];
public function linemanager()
{
return $this->hasOne('App\Models\Hr\HrEmployee', 'id', 'line_manager_id');
}
public function fullName()
{
return $this->first_name . ' ' . $this->other_name . ' ' . $this->last_name;
}
}
просмотр
<h3 class="profile-username text-center">{{$employee->first_name}} {{$employee->last_name}}</h3>
<p class="text-muted text-center">Designation: {{isset($employee->designation) ? $employee->designation->designation_name : 'N/A'}}</p>
<ul class="list-group list-group-unbordered mb-3">
<li class="list-group-item">
<b>Staff ID:</b> <a class="float-right">{{isset($employee->employee_code) ? $employee->employee_code : 'N/A'}}</a>
</li>
<li class="list-group-item">
<b>Department:</b> <a class="float-right">{{isset($employee->department) ? $employee->department->dept_name : 'N/A'}}</a>
</li>
<li class="list-group-item">
<b>Grade Level:</b> <a class="float-right">{{isset($employee->gradelevel) ? $employee->gradelevel->grade_level_name : 'N/A'}}</a>
</li>
<li class="list-group-item">
<b>Line Manager:</b> <a class="float-right">{{ $employee->linemanager->fullName() ?? 'None' }}</a>
</li>
<li class="list-group-item">
<b>HOD:</b> <a class="float-right">{{isset($employee->department->depthead) ? $employee->department->depthead->first_name. ' ' .$employee->department->depthead->last_name : 'None'}}</a>
</li>
</ul>
Когда я рендерил представление, я получил эту ошибку:
ОШИБКА: вызов функции-члена fullName () со значением NULL
Я нашел Получается, что всякий раз, когда у какого-либо сотрудника нет линейного менеджера, появляется ошибка
<b>Line Manager:</b> <a class="float-right">{{ $employee->linemanager->fullName() ?? 'None' }}</a>
Как устранить ее?
Спасибо