Skip to main content

Introducción

Cuando obtienes varios modelos con Eloquent, el resultado se devuelve como Illuminate\Database\Eloquent\Collection.
Como extiende Illuminate\Support\Collection, puedes usar sin cambios todos los métodos de la colección base.
Conviene tener claros los conceptos base de Colecciones y de Introducción a Eloquent para entender mejor las extensiones que aporta la colección de Eloquent.

Métodos disponibles

Eloquent\Collection hereda todos los métodos de la colección base y añade además métodos específicos para modelos.

append / withoutAppends / setAppends

Permite manipular los atributos añadidos (appends) durante la serialización para toda la colección.

contains / diff / except / intersect / only

Realiza comprobaciones de pertenencia, diferencia, intersección, exclusión y extracción, basadas en instancias de modelo o claves primarias.

find / findOrFail

Busca en la colección ya obtenida por clave primaria.

fresh

Vuelve a obtener cada modelo de la colección con su estado más reciente de la base de datos.

load / loadMissing

Realiza eager loading de relaciones sobre una colección ya obtenida.

modelKeys

Devuelve la lista de claves primarias de los modelos de la colección.

makeVisible / makeHidden / mergeVisible / mergeHidden / setVisible / setHidden

Permite ajustar por colección qué atributos son visibles u ocultos durante la serialización.

partition

Divide la colección en dos Eloquent\Collection según una condición y devuelve por fuera una Illuminate\Support\Collection.

toQuery

Genera una consulta whereIn sobre las claves primarias de los modelos obtenidos, útil para actualizar o eliminar en bloque.
Convertir a una única consulta con toQuery() en lugar de recorrer y llamar a save() individualmente ofrece un buen equilibrio entre rendimiento y legibilidad en la práctica.

unique

Elimina los modelos duplicados con la misma clave primaria.

Conversión de una colección Eloquent a la colección base

collapse, flatten, flip, keys, pluck y zip devuelven Illuminate\Support\Collection.
Además, si el resultado de map no contiene modelos Eloquent, también se convierte en la colección base.

Colecciones personalizadas

Si necesitas una clase de colección específica para un modelo, la opción más clara es usar el atributo #[CollectedBy].

Atributo #[CollectedBy] (recomendado)

Método newCollection() (alternativa)

Al definir newCollection() o #[CollectedBy], la colección personalizada se devuelve donde normalmente se devolvería Eloquent\Collection.
Si quieres aplicarlo a todos los modelos, define newCollection() en un modelo base común.

Páginas relacionadas

Colecciones

Repasa primero las operaciones básicas de Illuminate\\Support\\Collection.

Introducción a Eloquent

Aclara los fundamentos de modelos y consultas antes de trabajar con colecciones Eloquent.
Última modificación el 13 de julio de 2026