В этом ответе я предполагаю, что supervisor
- это идентификатор сотрудника руководителя.
Что-то не так с вашими отношениями, второй параметр hasMany
и belongsTo
Методы должны быть внешним ключом связанной модели (в данном случае это та же модель, но ключ, который ссылается на родительский объект, например supervisor
).Проверьте документацию относительно этой темы:
Как и метод hasOne, вы также можете переопределить внешние и локальные ключи, передав дополнительные аргументы методу hasMany:
return $this->hasMany('App\Comment', 'foreign_key');
return $this->hasMany('App\Comment', 'foreign_key', 'local_key');
Вы должны определить свои отношения следующим образом:
Employee.php
// a Manager has many employees
public function employees(){
return $this->hasMany(Employee::class, 'supervisor');
}
// an Employee works for a Manager
public function manager(){
return $this->belongsTo(Employee::class, 'supervisor');
}
Затем в контроллере:
app / Http / Controllers / SomeCoolController.php
$employees_with_manager = Employee::with('manager')->get();
return view('employee/index')->with('employees', $employees_with_manager);
Так что, на ваш взгляд, этого будет достаточно:
employee / index.blade.php
@foreach ($employees as $employee)
<td>
{{ $employee->manager->name }}
</td>
@endforeach