首页 > 解决方案 > Laravel 关系,hasmany 和 blongstomany

问题描述

嘿伙计们,我有一个关于多重关系的问题。

我有 3 张桌子:

students - id, username, pass
teachers - id, username, pass
periods - id, teacher_id, name

和 student_period 多对多。

这就是数据库的外观:https ://i.imgur.com/MXxLmQj.png

我想做的是我想让老师的所有学生都过一段时间,还没有见过这样的关系谁这样做,知道怎么做吗?

标签: phplaravelmodelrelationship

解决方案


设置教师和时期之间的关系 hasManybelongsTo

将学生和时期之间的关系设置为belongToManybelongsToMany

然后你可以像这样得到特定老师的学生

$teacherId = 1;
$students = Student::whereHas('periods.teacher', function($teacherQueryBuilder) use ($teacherId) {
    $teacherQueryBuilder->where('id', $teacherId);
})->get();

推荐阅读