Laravel关系,有许多,然后是bloblostomany



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

我有3个表:

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

和student_period表示多对多。

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

我想做的是我想让所有的学生和老师通过时间,没有见过这样的关系,谁会这样做,你知道怎么做吗?

设置教师与hasManybelongsTo的关系

设置学生与时间段的关系为belongToManybelongsToMany

那么你可以得到一个特定的老师的学生像这样

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

相关内容

最新更新