Laravel 关系,hasmany 和 blongstomany
Posted
技术标签:
【中文标题】Laravel 关系,hasmany 和 blongstomany【英文标题】:Laravel relationships, hasmany and then blongstomany 【发布时间】:2021-12-14 01:17:36 【问题描述】:大家好,我有一个关于多重关系的问题。
我有 3 张桌子:
students - id, username, pass
teachers - id, username, pass
periods - id, teacher_id, name
和 student_period 多对多。
这就是数据库的样子:https://i.imgur.com/MXxLmQj.png
我想做的是我想让老师的所有学生都通过时期,还没有见过这样的关系谁这样做,知道怎么做吗?
【问题讨论】:
【参考方案1】:设置教师和时期hasMany
和belongsTo
的关系
设置学生和时期的关系为belongToMany
和belongsToMany
那么你可以像这样获取特定老师的学生
$teacherId = 1;
$students = Student::whereHas('periods.teacher', function($teacherQueryBuilder) use ($teacherId)
$teacherQueryBuilder->where('id', $teacherId);
)->get();
【讨论】:
以上是关于Laravel 关系,hasmany 和 blongstomany的主要内容,如果未能解决你的问题,请参考以下文章
Laravel updateOrCreate 与 hasMany 关系
如何在 Laravel 的 hasMany 关系中使用 groupBy