Introduction
Lorsque vous récupérez plusieurs enregistrements avec Eloquent, le résultat est une instance deIlluminate\Database\Eloquent\Collection.Elle hérite de
Illuminate\Support\Collection, ce qui permet d’utiliser toutes les méthodes de la collection de base.
Méthodes disponibles
Eloquent\Collection hérite de toutes les méthodes de la collection de base et ajoute des méthodes spécifiques aux modèles.
append / withoutAppends / setAppends
Manipulez les attributs additionnels de sérialisation (appends) sur toute la collection.
contains / diff / except / intersect / only
Effectuez des tests d’appartenance, différences, intersections, exclusions et extractions à partir d’instances de modèle ou de clés primaires.
find / findOrFail
Recherchez un modèle par clé primaire dans une collection déjà récupérée.
fresh
Récupère à nouveau chaque modèle de la collection dans son état à jour depuis la base.
load / loadMissing
Chargez en Eager Loading des relations sur une collection déjà récupérée.
modelKeys
Retourne la liste des clés primaires des modèles de la collection.
makeVisible / makeHidden / mergeVisible / mergeHidden / setVisible / setHidden
Ajustez les attributs visibles/masqués lors de la sérialisation, au niveau de la collection.
partition
Divise la collection en deux Eloquent\Collection selon une condition ; l’enveloppe est un Illuminate\Support\Collection.
toQuery
Construit une requête whereIn sur les clés primaires des modèles récupérés, utile pour des mises à jour ou suppressions en masse.
unique
Supprime les modèles en double partageant la même clé primaire.
Conversion vers une collection de base
collapse, flatten, flip, keys, pluck et zip retournent Illuminate\Support\Collection.De même, si le résultat de
map ne contient plus de modèles Eloquent, il est converti en collection de base.
Collections personnalisées
Pour utiliser une classe de collection propre à un modèle, la méthode la plus claire consiste à utiliser l’attribut#[CollectedBy].
Attribut #[CollectedBy] (recommandé)
Méthode newCollection() (alternative)
newCollection() ou #[CollectedBy], la collection personnalisée sera retournée là où Eloquent\Collection l’était habituellement.Pour l’appliquer à tous les modèles, définissez
newCollection() dans un modèle de base commun.
Pages associées
Collections
Prenez d’abord connaissance des opérations de base de
Illuminate\\Support\\Collection.Introduction à Eloquent
Maîtrisez d’abord les bases des modèles et des requêtes avant d’utiliser les collections Eloquent.