我有一张人员表,人们可以在很多部门。
public function departments()
{
return $this->belongsTo('App\Models\Departments', 'id');
}
我有一个部门表,一个部门有很多人
return $this->hasMany('App\Models\People', 'id', 'department_id');
人员表
-id
-name
-title
部门表
-id
-person_id
-department_id
person_id是外键。
因此,如果我希望从部门2(会计)返回所有人员,我可以这样做
$depts = $departments::where('department_id', 2)->get();
foreach($depts as $dept) {
// do something
}
但这只会返回他们的身份。这是一个开始,但我如何进行连接以返回名称和标题?我必须做foreach还是有办法加入?
答案 0 :(得分:2)
$department = Department::with(['people'])->find(2);
$people = $department->people;
答案 1 :(得分:1)
whereHas
将通过关系约束查询:
$departmentId = 2;
People::whereHas('departments', function($query) use ($departmentId) {
return $query->where('id', $departmentId);
})
->get();