Skip to main content

Introduction

Lorsque vous récupérez plusieurs enregistrements avec Eloquent, le résultat est une instance de Illuminate\Database\Eloquent\Collection.
Elle hérite de Illuminate\Support\Collection, ce qui permet d’utiliser toutes les méthodes de la collection de base.
Il est utile de maîtriser d’abord les collections de base et l’introduction à Eloquent pour comprendre ce que les collections Eloquent apportent en plus.

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.
Plutôt que boucler avec des save() individuels, convertir en requête en masse via toQuery() améliore à la fois les performances et la lisibilité en production.

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)

En définissant 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.
Dernière modification le 13 juillet 2026