Laravel 关系,hasmany 然后 blongstomany

Laravel relationships, hasmany and then blongstomany

大家好,我有一个关于多重关系的问题。

我有 3 张桌子:

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

和student_period 多对多。

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

我想做的是我想让老师的所有学生都通过期间,还没有看到这样的关系是谁做的,知道如何做这样的事情吗?

设置教师与课时的关系hasManybelongsTo

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

然后就可以这样获取特定老师的学生

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