雄辩的,每个表的多个关系

Posted

技术标签:

【中文标题】雄辩的,每个表的多个关系【英文标题】:Eloquent, multiple relationships per table 【发布时间】:2017-04-01 18:07:45 【问题描述】:

是否可以通过 eloquent 查询链接表链,其中一些表具有多个关系并获取所有关联信息?

例如:

Table Schools 与 Courses 是一对多的关系 Table Courses 与 Student 有多对多的关系 Table Teachers 与 Courses 是一对多的关系 Table Supervisors 与 Student 是一对多的关系 Table Books 与学生有多对多的关系

如果有人想要某所特定学校的所有信息(即与该学校相关联的学生、课程、教师、书籍、主管),那么 eloquent 是否可行?还是只能使用原始 SQL?

我不是在寻找示例的解决方案,只是查询多个表的方法,每个表都有多个关系。

【问题讨论】:

【参考方案1】:

是的。这可以通过 Nested eager loading 雄辩地实现

$school=School::with('cources','cources.students.supervisor','cources.teacher','...')->first();
foreach($school->cources as $cource)

   echo $cource;
   echo $cource->teacher;
   foreach($cource->students as $student)
   
      echo $student;
      echo $student->supervisor;
   
...

【讨论】:

以上是关于雄辩的,每个表的多个关系的主要内容,如果未能解决你的问题,请参考以下文章

与3表的雄辩关系

雄辩的 laravel 关系

如何在 Laravel 雄辩关系中添加多个条件

如何从雄辩关系中的第三个表中获取数据雄辩的多对多关系

如何使用父枢轴值作为条件获得雄辩的关系

多个表上的雄辩的自定义“属于”关系