El framework Laravel incluye una clase Collection
que nos permite realizar operaciones con arreglos de datos, de una forma mucho más sencilla y fácil de leer. En esta serie de tutoriales te enseñaré cómo trabajar con esta clase y con el patrón Arquitectura en Pipeline.
Notas: Ambar Quintana
Creando una nueva colección
Podemos crear una nueva colección de varias formas:
Usando new Collection
:
// $collection = new Collection ($values);
Mediante el método estático make
de Collection
:
// $collection = Collection::make($values);
O a través del helper collect
:
// $collection = collect($values);
Cada forma recibe como primer argumento el arreglo de datos que deseas convertir en una colección.
No olvides importar la clase Illuminate\Support\Collection
al inicio del archivo PHP cuando uses new Collection
y Collection::make
.
Esto va a generar una nueva instancia de Illuminate\Support\Collection
, la cual nos permitirá trabajar con todos los métodos que esta clase coloca a nuestra disposición.
Método all()
Este método nos devuelve el arreglo que se encuentra almacenado dentro de la colección:
$collection = collect([1, 2, 3, 4]); $collection->all(); // [1, 2, 3, 4]
Método filter()
Permite filtrar los datos dentro de una colección. Recibe como primer argumento una función de retorno donde podemos agregar la lógica que deseamos aplicar en nuestro filtro:
$values = collect([1, 2, 3, 4]); $collection = $values->filter(function ($value) { return $value % 2 == 0; }); $collection->all(); // [1 => 2, 3 => 4]
Los valores que no pasen la comprobación de tu filtro serán eliminados de la colección resultante.
Método map()
Este método itera la colección y pasa cada valor a una función callback dada, en la cual puedes modificarlos y devolverlos, formando así una nueva colección con los elementos modificados:
$values = collect([1, 2, 3, 4]); $collection = $values->map(function ($value) { return $value * 2; }); $collection->all(); // [2, 4, 6, 8]
Material relacionado
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.
Lección siguiente Ventajas de usar las colecciones de Laravel