如何通过中间模型(Pivot Model)定义branch与teacher的hasManyThrough关联?
Laravel 中 Branch 与 Teacher 的 hasManyThrough 关联定义
根据你的数据表结构,Branch 到 Teacher 的关联路径是 Branch -> BranchDepartment -> Teacher,可以通过 hasManyThrough 关联直接从分支获取其关联的所有教师。
在 Branch 模型中添加如下关联方法:
public function teachers() { return $this->hasManyThrough( Teacher::class, BranchDepartment::class, 'branch_id', // branch_department表中关联branch的外键 'branch_department_id', // teacher表中关联branch_department的外键 'id', // branch表的主键 'id' // branch_department表的主键 ); }
参数说明:
Teacher::class:最终要关联的目标模型类BranchDepartment::class:连接Branch和Teacher的中间模型类'branch_id':中间表branch_department中指向branch表的外键字段'branch_department_id':teacher表中指向branch_department表的外键字段'id':branch表的主键字段'id':branch_department表的主键字段
使用示例:
获取ID为1的分支下所有教师:
$branch = Branch::find(1); $teachers = $branch->teachers;
内容的提问来源于stack exchange,提问作者MOHAMMAD RASIM
相关产品推荐
相关产品推荐

