第一个我有三个表中检索数据:检索3个表中的数据如何从最后一个表使用Laravel
教师
ID
名
FAMILY_NAME
课室
CLASS_NAME
teacher_id
学生
名
FAMILY_NAME
教师有一对多的关系与课堂
学生有男人y与课室有很多关系
如何检索教师的所有学生使用Eloquent方法而不使用foreach?
第一个我有三个表中检索数据:检索3个表中的数据如何从最后一个表使用Laravel
教师
ID
名
FAMILY_NAME
课室
CLASS_NAME
teacher_id
学生
名
FAMILY_NAME
教师有一对多的关系与课堂
学生有男人y与课室有很多关系
如何检索教师的所有学生使用Eloquent方法而不使用foreach?
$teacher = Teacher::with('classrooms.students')->find($someId); //eager load
$studentsArray = $teacher->classrooms->pluck('students'); //array of students with duplicates
$students = (new Collection($studentsArray))->collapse()->unique(); //collection of unique students
创建像下面一个新的关系:
public function students()
{
return $this->hasManyThrough(Student::class, ClassRoom::class);
}
现在你只查询像下面的学生:
$teacher = Teacher::where('id', '1')->first();
$students = $teacher->students;
hasManyThrouh只用于三个表的一对多关系我有一对多和多对多 – Sia
这是在文档:https://开头laravel.com/docs/master/eloquent-relationships#has-many-through – mopo922