Laravel 4Laravel erhalten alle verwandten Modelle in einer Sammlung/array
Gibt es eine einfache Möglichkeit, alle zugehörigen Modelle in einer Sammlung zu bekommen (nur bei Eloquent)?
Zum Beispiel möchte ich alle Schüler bekommen, dass zu viele Klassen verwandt ist:
Zuerst muss ich mit den Beziehungen eine Sammlung erhalten:
$classes = Class::with('students')->whereIn('code', ['A', 'B'])->get();
Dann muss ich gehen durch die gesamte Kollektion, die Schüler zu fusionieren:
$allStudents = new Collection;
foreach ($classes as $class) {
$allStudents = $allStudents->merge($class->students);
}
Oder wenn ich nur einen Schlüssel benötigen, beispielsweise id
des Schülers, ich tue dies:
$allStudentsIds = [];
foreach ($classes->fetch('students') as $studentsArray) {
$allStudentsIds = array_merge(
$allStudentsIds, array_pluck($studentsArray, 'id')
);
}
Gibt es eine Methode, um nur verwandte Modelle zu erhalten? Oder irgendwie kann ich es durch eine Anfrage an das Student
Modell schaffen?