Einführung
Wenn Sie mit Eloquent mehrere Modelle abfragen, erhalten Sie das Ergebnis alsIlluminate\Database\Eloquent\Collection.
Da diese Klasse von Illuminate\Support\Collection erbt, stehen alle Methoden der Basis-Collection zur Verfügung.
Verfügbare Methoden
Eloquent\Collection erbt alle Methoden der Basis-Collection und ergänzt zusätzliche, modellorientierte Methoden.
append / withoutAppends / setAppends
Verwaltet die bei der Serialisierung angehängten Attribute (Appends) für die gesamte Collection.
contains / diff / except / intersect / only
Führt anhand von Modellinstanzen oder Primärschlüsseln Enthaltensein, Differenz, Schnittmenge, Ausschluss oder Auswahl durch.
find / findOrFail
Sucht in einer bereits geladenen Collection ein Modell über den Primärschlüssel.
fresh
Lädt alle Modelle der Collection erneut mit ihrem aktuellen Datenbankzustand.
load / loadMissing
Lädt Relationen einer bereits geladenen Collection nachträglich per Eager Loading.
modelKeys
Liefert die Primärschlüssel aller Modelle in der Collection.
makeVisible / makeHidden / mergeVisible / mergeHidden / setVisible / setHidden
Ermöglicht es, die bei der Serialisierung sichtbaren bzw. verborgenen Attribute auf Collection-Ebene anzupassen.
partition
Teilt anhand einer Bedingung in zwei Eloquent\Collection-Objekte auf; der äußere Container ist eine Illuminate\Support\Collection.
toQuery
Erzeugt eine whereIn-Abfrage über die Primärschlüssel der geladenen Modelle, mit der Sie zum Beispiel Massenaktualisierungen oder -löschungen durchführen können.
unique
Entfernt Modelle mit doppeltem Primärschlüssel.
Umwandlung in eine Basis-Collection
Die Methodencollapse, flatten, flip, keys, pluck und zip liefern eine Illuminate\Support\Collection zurück.
Enthält das Ergebnis eines map-Aufrufs keine Eloquent-Modelle, wird ebenfalls in eine Basis-Collection konvertiert.
Eigene Collections
Möchten Sie für ein Modell eine dedizierte Collection-Klasse verwenden, ist das Attribut#[CollectedBy] die klarste Möglichkeit.
Attribut #[CollectedBy] (empfohlen)
Methode newCollection() (Alternative)
newCollection() oder #[CollectedBy] definieren, wird an Stellen, an denen normalerweise eine Eloquent\Collection zurückgegeben würde, Ihre eigene Collection verwendet.
Sollen alle Modelle davon profitieren, definieren Sie newCollection() in einer gemeinsamen Basisklasse.
Verwandte Seiten
Collections
Vertiefen Sie zuerst die Grundlagen von
Illuminate\Support\Collection.Einführung in Eloquent
Frischen Sie Modelle und Query-Grundlagen auf, bevor Sie mit Eloquent-Collections weiterarbeiten.