Comparte en Facebook Twitter Google+

laravel-collection

El uso de arrays en PHP es de gran ayuda para manejar listas de información de forma ordenada las cuales se pueden iterar. Adicionalmente a eso, Laravel pone a disposición algunos helpers que permiten trabajar de una forma mucho más fácil con estos elementos, hoy vamos a hablar de la clase Illuminate/Support/Collection.

Esta clase Collection permite convertir cualquier array en un objeto de colección de datos.

Cuando usamos métodos como get() y all() en un modelo de Eloquent, estos devuelven una instancia de Illuminate\Database\Eloquent\Collection que hereda de la clase Illuminate\Support\Collection, las cuales ponen a nuestra disposición métodos adicionales a cuando trabajamos con arrays planos de PHP.

Lo que quizás no sepas es que tú puedes convertir cualquier array en un objeto de Collection, y obtener las mismas funciones extra.

Implementando la clase Collection

Como siempre, para implementar una clase hacemos el llamado desde la cabecera del controlador:

En este caso usamos un alias para facilitar el llamado.

Convirtiendo array’s en colecciones

Vamos a crear un array multidimensional

Tenemos dos elementos, el primero con números y el segundo con algunos nombres, si imprimimos en pantalla, utilizando la función var_dump($var) o dd($var) veremos algo como lo siguiente:

collection-array

 

Para convertir este array en una instancia de la clase Collection usaremos:

Si ahora imprimimos la variable $collection, podremos ver el nuevo objeto:

collection-object

Accediendo a los métodos de la clase Collection

Recuerda que desde ahora estás trabajando con un objeto, por lo cual si quieres volver a obtener como “array” el conjunto de elementos de dicho objeto puedes usar:

Finalmente, trabajando con el objeto Collection obtendrás una interfaz mucho más conveniente, así como métodos adicionales.

Si deseas por ejemplo obtener el primer valor de un array basta con:

collection-first

De igual forma puedes obtener el ultimo valor con:

collection-last

Para enviar por ejemplo una respuesta en formato json

collection-tojson

Estos son algunos pequeños ejemplos, para conocer un poco mas sobre el uso de esta clase puedes visitar la documentación oficial del API.

De esta forma ya puedes hacer operaciones de una forma más profesional y completa con tus arrays en Laravel. Recuerda dejar tus comentarios y dudas debajo.

Lecturas recomendadas 

Aprende PHP, Laravel y más por sólo 999 al mes: ver planes.

Lección anterior Uso de los View Composer en Laravel 5 Lección siguiente URLs amigables y rutas con slugs en Laravel