Aan de slag
Wanneer je met Eloquent meerdere modellen ophaalt, krijg je het resultaat terug als eenIlluminate\Database\Eloquent\Collection.Omdat deze klasse
Illuminate\Support\Collection extendt, kun je de methoden van de basiscollectie gewoon gebruiken.
Beschikbare methoden
Eloquent\Collection erft alle methoden van de basiscollectie en voegt daar methoden voor modellen aan toe.
append / withoutAppends / setAppends
Hiermee bewerk je de extra attributen bij serialisatie (appends) voor de hele collectie.
contains / diff / except / intersect / only
Voert op basis van modelinstanties of primaire sleutels controles op aanwezigheid, verschil, doorsnede, uitsluiting en selectie uit.
find / findOrFail
Zoekt een model op primaire sleutel in een al opgehaalde collectie.
fresh
Haalt elk model in de collectie opnieuw op met de nieuwste toestand uit de database.
load / loadMissing
Hiermee kun je op een al opgehaalde collectie achteraf relaties eager loaden.
modelKeys
Haalt de lijst met primaire sleutels van de modellen in de collectie op.
makeVisible / makeHidden / mergeVisible / mergeHidden / setVisible / setHidden
Hiermee pas je op collectieniveau de zichtbare en verborgen attributen bij serialisatie aan.
partition
Splitst op basis van een voorwaarde in twee Eloquent\Collection-instanties; de buitenkant wordt teruggegeven als Illuminate\Support\Collection.
toQuery
Maakt een whereIn-query op de primaire sleutels van de opgehaalde modellen, zodat je ze in bulk kunt bijwerken of verwijderen.
unique
Verwijdert dubbele modellen met dezelfde primaire sleutel.
Van Eloquent-collectie naar basiscollectie
collapse, flatten, flip, keys, pluck en zip geven een Illuminate\Support\Collection terug.Ook als het resultaat van
map geen Eloquent-modellen bevat, wordt het omgezet naar de basiscollectie.
Eigen collecties
Wil je een collectieklasse specifiek voor een model gebruiken, kies dan eerst de aanpak met het#[CollectedBy]-attribuut; dat is het duidelijkst.
Het #[CollectedBy]-attribuut (aanbevolen)
De newCollection()-methode (alternatief)
newCollection() of #[CollectedBy] definieert, wordt je eigen collectie teruggegeven op de plekken waar normaal een Eloquent\Collection terugkomt.Wil je dit op alle modellen toepassen, definieer dan
newCollection() in een gemeenschappelijk basismodel.
Gerelateerde pagina’s
Collecties
Bekijk eerst de basisbewerkingen van
Illuminate\\Support\\Collection.Introductie tot Eloquent
Fris de basis van modellen en queries op voordat je met Eloquent-collecties aan de slag gaat.