You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过中间模型(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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 01:05:03