Laravel 4
有没有什么简单的方法可以在一个系列中获得所有相关的模型(只有Eloquent)?
例如,我想得到所有的学生,这与许多课程有关:
首先,我需要获得一个具有关系的集合:
$classes = Class::with('students')->whereIn('code', ['A', 'B'])->get();
然后我需要浏览整个集合来合并学生:
$allStudents = new Collection;
foreach ($classes as $class) {
$allStudents = $allStudents->merge($class->students);
}
或者,如果我只需要一个密钥,例如,学生的id
,我会这样做:
$allStudentsIds = [];
foreach ($classes->fetch('students') as $studentsArray) {
$allStudentsIds = array_merge(
$allStudentsIds, array_pluck($studentsArray, 'id')
);
}
是否有只获取相关模型的方法?或者我可以通过对Student
模型的请求来完成它?
基于学生进行查询并加入类?
Student::select('student.*')
->join('class_student', 'class_student.student_id', '=', 'student.id')
->join('class', 'class.id', '=', 'class_student.class_id')
->whereIn('class.id', $classes)
->get();
类似的东西。
我假设这是一个多对多的关系,class_student是关联表