GlosarioArquitectura

¿Qué es Collection?

Las Collections en Laravel son envoltorios fluidos para arrays que proporcionan metodos encadenables como map, filter, reduce, pluck y sortBy para manipular datos de forma expresiva y funcional.

Collections

Las Collections son una de las herramientas mas potentes de Laravel. Proporcionan una API fluida y encadenable para trabajar con arrays de datos, inspirada en la programacion funcional.

Uso basico

use Illuminate\Support\Collection;

$collection = collect([1, 2, 3, 4, 5]);

// Transformaciones
$doubled = $collection->map(fn ($item) => $item * 2);        // [2, 4, 6, 8, 10]
$evens = $collection->filter(fn ($item) => $item % 2 === 0);  // [2, 4]
$sum = $collection->sum();                                     // 15
$first = $collection->first(fn ($item) => $item > 3);          // 4

Con modelos Eloquent

$users = User::all(); // Retorna una Collection de Eloquent

// Agrupar por rol
$grouped = $users->groupBy('role');

// Extraer un campo especifico
$emails = $users->pluck('email');

// Transformar para una API
$data = $users->map(fn ($user) => [
    'name' => $user->name,
    'avatar' => $user->avatar_url,
    'posts_count' => $user->posts->count(),
]);

// Metodos de agregacion
$avgAge = $users->avg('age');
$maxSalary = $users->max('salary');

Metodos populares

$collection->each(fn ($item) => /* ... */);   // Iterar sin transformar
$collection->contains('value');                // Comprobar existencia
$collection->unique('field');                  // Eliminar duplicados
$collection->sortBy('name');                   // Ordenar
$collection->chunk(3);                         // Dividir en grupos
$collection->flatMap(fn ($item) => /* ... */); // Map + flatten
$collection->pipe(fn ($col) => /* ... */);     // Pasar la coleccion completa

Las Collections eliminan la necesidad de usar funciones de array de PHP como array_map, array_filter o array_reduce, ofreciendo una sintaxis mucho mas legible y mantenible.