php - 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
我想做的是我想让老师的所有学生都过一段时间,还没有见过这样的关系谁这样做,知道怎么做吗?
解决方案
设置教师和时期之间的关系 hasMany
和belongsTo
将学生和时期之间的关系设置为belongToMany
和belongsToMany
然后你可以像这样得到特定老师的学生
$teacherId = 1;
$students = Student::whereHas('periods.teacher', function($teacherQueryBuilder) use ($teacherId) {
$teacherQueryBuilder->where('id', $teacherId);
})->get();
推荐阅读
- java - 创建递归路径查找算法以查找图中两个节点之间的所有路径
- javascript - fullcalender v5 资源集图标
- python - Ursina的动画师
- flutter - 如何在颤动上使用 blue_thermal_printer 显示像 é à 这样的重音字母
- python - 如何在 python 上运行 fds?
- javascript - 反应JS。如何对数据进行排序并找到与 id 相同的 name 属性值并将对象存储在变量中
- c - 错误说明对 putchar 的未定义引用
- ios - SwiftUI 忽略底部不能在 NavigationView 列表中工作
- c# - 如何访问 ASP.NET ITemplate 容器属性
- jenkins - 在哪里可以找到 Jenkins 的 `input()` 方法的源代码?