У меня есть три стола, штат, места и отделы. В таблице персонала есть поля для местоположения и отдела, которые являются числовыми. Таблицы местоположений и отделов имеют поля id, которые используются таблицей персонала для указания местоположения и данных отдела. Я пытаюсь отобразить детали персонала в представлении, но не могу найти правильный синтаксис в документации laravel, чтобы сделать это, не создавая асоциальный массив.laravel eloquent связанные таблицы синтаксис
это то, что я имею в моем staffController файле
public function index()
{
$staff_details = Staff::all();
foreach($allStaff as $staff_member){
$location = Locations::find($staff_member->location);
$department= Departments::find($staff_member->department);
$staff_details[] = array(
'id' => $staff_member->id,
'first_name' =>$staff_member->first_name,
'surname' =>$staff_member->surname,
'job_title' => $staff_member->job_title,
'location' => $location->location,
'department' => $department->department,
);
}
return view('staff.index', compact('staff_details'));
}
, но это проходит массив. Я хочу передать staff_details объект, делающий somthing как $staff_details = Staff::all()->locations($staff->location)->departments($staff->department);
очевидно это неправильный синтаксис.
Может ли кто-нибудь указать мне правильное направление?
Спасибо за это. У меня есть мои отношения, созданные в моделях местоположений и отделов, в качестве сотрудников публичных функций() { return $ this-> принадлежит ToMany ('App \ Staff'); } и в штатной модели в качестве местоположения публичных функций() { return $ this-> hasOne ('App \ Locations', 'location'); } общественные департаменты ( { возвращение $ this-> hasOne ('App \ Departments', 'department'); }, но он возвращает null для местоположения и отдела, любые идеи, почему это происходит? –
Я понял, что мне нужен внешний ключ и локальный ключ в отношениях в моделях, а также нужно правильно их ссылать на лезвие, поэтому отношения отправляются туда, где возвращаются $ this-> hasOne ('App \ Locations', 'id' , 'место нахождения'); и упоминается в лезвии как {{$ staff-> locations-> location}} спасибо за ввод, отличная помощь –