【发布时间】:2016-07-10 10:52:22
【问题描述】:
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 模型的请求以某种方式实现它?
【问题讨论】:
标签: php laravel laravel-4 orm eloquent