Para qué sirven los Collections en Laravel

Curso de PHP con Laravel

Take the first classes for free

SHARE THIS ARTICLE AND SHOW WHAT YOU LEARNED

En PHP una de las estructuras de datos más usadas son los arreglos, sin embargo, una pequeña debilidad dentro de PHP es que los arreglos no son objetos, y tenemos que usar funciones auxiliares para manipularlos, además de eso algunas veces estas funciones son inconsistentes en el orden de los parámetros o en la forma de usarse.

Cuando trabajamos en Laravel este problema se soluciona con las Collections, este tipo de objeto especial de objeto viene a crear una especie de capa superior dentro de nuestros arreglos tradicionales. Considera que existe un modelo llamado User en tu proyecto de Laravel, cuando nosotros usamos el código: “User::all();“ lo que realmente nos está regresando no es un array, es más bien un objeto Collection.,lo más interesante de esto es que a pesar de ser un objeto, aún puedes seguir accediendo a cada elemento usando el índice correspondiente, por ejemplo:

<$users = Users::all(); // Esto regresa un Collection
$firstUser = $users[0];
>

Otra forma de crear una Collection es usando el método collect sobre un array regular:

<$users = collect([$user1, $user2]);>

Pero eso no es todo, además de poder usar este objeto como un arreglo, también cuenta con otros métodos especiales para acceder a elementos de una forma más natural:

<$firstUser = $users->first();
$lastUser = $users->last();
>

Buscar elementos

Otro punto en el que las Collections brillan es la forma en la que podemos buscar elementos, para esto Collection cuenta con diversos métodos que podemos utilizar, por ejemplo:

<$users = $users->where(‘name’, ‘Jhon Doe’);>

En este ejemplo la colección buscará todos los elemento que tengan la propiedad name con el valor ‘Jhon Doe’, pero eso no es todo, como esto regresa otra colección puedes encadenar los métodos:

<$users = $users->where(‘name’, ‘Jhon Doe’)->first();>

Recorrer los elementos

También existen métodos especiales que nos permitirán recorrer los elementos y usar un closure sobre ellos, por ejemplo:

<$filtered = $users->filter(function($user) {
	return $user->age > 18;
}); // Regresa a los users con edad mayor a 18

$mapped = $users->map(function($user) {
	return $user->email;
}); // regresa un nuevo arreglo solo con los emails de los usuarios

$pluckValues $users->pluck(‘email’); // regresa un nuevo arreglo solo con los emails de los usuarios
>

Obtener partes del arreglo

También es muy sencillo obtener sub grupos del arreglo, por ejemplo:

<$users->take(2); // regresa los primeros 2 elementos

$users->chunk(3); // regresa un arreglo de colecciones y cada una tendrá máximo 3 elementos
>

Matemáticas

Además de todo esto, las colecciones también nos ofrecen algunos métodos que nos permiten hacer operaciones aritméticas dentro de nuestro código, por ejemplo:

<collect([2, 3, 4, 5])->avg(); // nos regresa el valor promedio
$users->sum(‘age’); // Nos regresa la suma de todas las edades de los usuarios
>

Recuerda que esto solo es una parte de lo que te pueden ofrecer las colecciones usando Laravel, no olvides consultar la documentación y seguir aprendiendo acerca de lo que ofrecen.

Por supuesto que si lo que quieres es aprender Laravel desde 0 y conocer muchas más cosas que puedes hacer, pues olvides tomar el curso de Laravel que tenemos aquí en Platzi.

Curso de PHP con Laravel

Take the first classes for free

SHARE THIS ARTICLE AND SHOW WHAT YOU LEARNED

0 Comments

to write your comment

Related articles