我有三张桌子,工作人员,地点和部门。 staff表包含位置和部门的字段,这些字段是数字的。位置和部门表具有id字段,员工表使用这些字段来引用位置和部门详细信息。我试图在视图中显示人员详细信息,但似乎无法在laravel文档中找到正确的语法来执行此操作而不创建一个asociative数组。
这是我在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对象做类似的事情
$staff_details = Staff::all()->locations($staff->location)->departments($staff->department);
显然这是不正确的语法。
有人能指出我正确的方向吗?
答案 0 :(得分:2)
在set up the proper relationships in your model之后,请使用with
方法:
$staff_details = Staff::with('locations', 'departments')->get();