Requisito previo
Debes crear un proyecto de Laravel antes de comenzar este tutorial. También debe tener un conocimiento básico de controlador y enrutamiento.
Crear una colección
Crea el controlador llamado CollectionController y escribe el código necesario para crear una nueva colección dentro del controlador. Ejecute el siguiente comando para crear el controlador.
$ php artisan make: controller CollectionControllerPuedes crear una colección usando una clase de colección o el método collect (). Ambas formas se muestran a continuación. Agregue la siguiente línea en la parte superior del CollectionController clase para usar el colección clase.
// Agrega la clase de colecciónutilice Illuminate \ Support \ Collection;
A. Crear colección usando clase
Crea el clase_coleccion () método con el siguiente código dentro del Colección Controlador. Aquí, se crea una colección de números con una clase de colección. Cuando se llama a este método, los valores de la variable de colección se mostrarán en el navegador.
función pública collection_class ()// Crea una nueva colección usando la clase Collection
$ colección1 = nueva colección ([67,34,89,56,23]);
// volcar el contenido de la variable en el navegador
dd ($ colección1);
Agregue la siguiente ruta en el rutas \ web.php archivo para llamar al clase_coleccion ().
Route :: get ('collect1', '[email protected] _class');Ingrese la siguiente URL en el navegador para verificar la salida.
http: // localhost: 8000 / collect1
La siguiente salida aparecerá después de ejecutar la URL. Los cinco números de la colección están impresos aquí.
B. Crear colección usando el método
También se puede crear una colección utilizando el recoger() método. Agregue lo siguiente método_colectar () dentro de CollectionController para crear una colección de cadenas usando el recoger() método. Cuando se llama a este método, los valores de la variable de colección se mostrarán en el navegador, como antes.
función pública collect_method ()// Crea una nueva colección usando el método collect
$ colección2 = recopilar (["Bueno", "Mejor", "Mejor"]);
// volcar el contenido de la variable en el navegador
dd ($ colección2);
Agregue la siguiente ruta en el rutas \ web.php archivo para llamar al método_colectar ().
Route :: get ('collect2', '[email protected] _method');Ingrese la siguiente URL en el navegador para verificar la salida.
http: // localhost: 8000 / collect2
La siguiente salida aparecerá después de ejecutar la URL. Los tres valores de cadena de la colección se imprimen aquí.
Buscar datos en la colección
Los datos se pueden buscar en la colección de varias formas. Agregue el siguiente código dentro del CollectionController. En el código se muestran dos tipos de búsqueda. Primero, se define una colección de clientes, y el contiene () El método se utiliza para buscar al cliente llamado 'Janifer.' A continuación, se define una colección de la matriz multidimensional y dónde() El método se utiliza para dos tipos de búsqueda en la colección. El primero dónde() El método se utiliza para buscar la información, donde el IDENTIFICACIÓN la clave contiene el valor «011176645.' El segundo dónde() El método se utiliza para buscar la información donde el marcas de CSE409 es 88.
función pública search_data ()// Declarar una colección
$ customer = collect ([['id' => '894673', 'name' => 'Rahman', 'email' => '[email protected]'],
['id' => '454886', 'name' => 'Janifer', 'email' => '[email protected]'],
['id' => '306007', 'name' => 'Micheal', 'email' => '[email protected]']]);
// Buscar usando el método contains
if ($ cliente-> contiene ('nombre', 'Janifer'))
echo "Janifer existe en la lista de clientes.
";
// Declarar otra colección
$ marcas = recolectar ([
['ID' => '011176644', 'marcas' => ['CSE401' => 87, 'CSE409' => 88]],
['ID' => '011176645', 'marcas' => ['CSE402' => 69, 'CSE409' => 75]],
]);
// Busca usando el método where
echo $ marcas-> donde ('ID', '011176645')."
";
echo $ marcas-> donde ('marcas.CSE409 ', 88);
Agregue la siguiente ruta en el rutas \ web.php archivo para llamar al datos_búsqueda ().
Route :: get ('src_collection', '[email protected] _data');Ingrese la siguiente URL en el navegador para verificar la salida.
http: // localhost: 8000 / src_collection
La siguiente salida aparecerá después de ejecutar la URL.
Filtrar datos de recopilación
La filtrar() El método se utiliza para filtrar datos de la colección. Agregue el siguiente código en CollectionController. Una coleccion de productos se define en el código que contiene el nombre y el precio del producto. La filtrar() El método se utiliza para filtrar datos de cuya colección precio el valor es mayor que 4000. La recopilación de datos filtrados se convierte en una matriz y la imprime el por círculo.
función pública filter_data ()// Declarar una colección
$ productos = recolectar ([
['producto' => 'HDD', 'precio' => 6000],
['producto' => 'Ratón', 'precio' => 500],
['producto' => 'Monitor', 'precio' => 5000],
['producto' => 'Impresora', 'precio' => 4000],
]);
// Cree otra lista después de filtrar los datos según el valor del precio
$ filter_price = $ productos-> filter (function ($ item)
return data_get ($ artículo, 'precio')> 4000;
);
// Leer todos los datos como una matriz de la nueva colección
$ filtrado = $ filter_price-> all ();
// Iterando los valores de la matriz usando loop
foreach ($ filtrado como $ valor)
echo "Nombre:".$ valor ['producto'].","."Precio: ".$ valor ['precio']."
";
Agregue la siguiente ruta en el rutas \ web.php archivo para llamar al filter_data ().
Route :: get ('filter_collection', '[email protected] _data');Ingrese la siguiente URL en el navegador para verificar la salida.
http: // localhost: 8000 / filter_collection
La siguiente salida aparecerá después de ejecutar la URL.
Ordenar datos de recopilación
Varios clasificar existen métodos en Laravel para ordenar los datos de la colección. Agregue el siguiente código en el CollectionController. Una colección de libros se define en el código. La Ordenar por() El método se utiliza para clasificar los datos de la colección en función de la clave 'autor.Luego, los valores de la variable de colección ordenada se imprimen en el navegador.
función pública sort_data ()// Declarar una colección
$ libros = coleccionar ([
['name' => 'Python Cookbook: Recetas para dominar Python 3',
'author' => 'David Beazley'],
['name' => 'Aprenda Python en 1 día: Guía completa de Python con ejemplos',
'author' => 'Krishna Rungta'],
['name' => 'Programación Python: Introducción a las Ciencias de la Computación',
'author' => 'John M. Zelle '],
['name' => 'Python Pocket Reference 5ed: Python in Your Pocket',
'author' => 'Mark Lutz']
]);
// Ordenar los datos de la colección según el nombre del autor
$ sortedBook = $ libros-> sortBy ('autor');
// volcar el contenido de la variable en el navegador
dd ($ libro ordenado-> valores () -> toArray ());
Agregue la siguiente ruta en el rutas \ web.php archivo para llamar al sort_data ().
Route :: get ('sort_collection', '[email protected] _data');Ingrese la siguiente URL en el navegador para verificar la salida.
http: // localhost: 8000 / sort_collection
La siguiente salida aparecerá después de ejecutar la URL.
Datos de recopilación de cortes
Una porción particular se puede cortar de la colección usando el llevar() método. Agregue el siguiente código en el CollectionController. La llevar() El método se usa en el código para crear una nueva lista cortando los primeros tres elementos de la colección. A continuación, el por loop imprime los valores de la nueva colección.
función pública slice_data ()// Declarar una colección
$ idiomas = recopilar (['PHP', 'Bash', 'Python', 'Java', 'C #', 'C ++']);
// Recuperar los primeros tres datos
$ segmento = $ idiomas-> tomar (3);
// Iterando valores de colección
foreach ($ segmento como $ valor)
echo $ valor."";
Agregue la siguiente ruta en el rutas \ web.php archivo para llamar al slice_data ().
Route :: get ('slice_collection', '[email protected] _data');Ingrese la siguiente URL en el navegador para verificar la salida.
http: // localhost: 8000 / slice_collection
La siguiente salida aparecerá después de ejecutar la URL.
Encuentre la diferencia entre dos colecciones
La diff () El método se utiliza para buscar valores de la primera colección que no existen en la segunda colección. Agregue el siguiente código en CollectionController. Aquí se definen dos variables de colección. La diff () El método genera una nueva colección después de recuperar los valores de list1 que no existen en list2.
función pública find_diff ()// Declarar dos colecciones
$ list1 = collect (['Cuaderno', 'Bolígrafo', 'Sacapuntas', 'Escala', 'Lápiz']);
$ list2 = collect (['Lápiz', 'Lápiz de color', 'Papel de color', 'Bolígrafo']);
// Encuentra qué datos existen en list1 pero no en list2
$ nuevaLista = $ lista1-> diff ($ lista2);
// volcar el contenido de la variable en el navegador
dd ($ newList);
Agregue la siguiente ruta en el rutas \ web.php archivo para llamar al find_diff ().
Route :: get ('diff_collection', '[correo electrónico protegido] _diff');Ingrese la siguiente URL en el navegador para verificar la salida.
http: // localhost: 8000 / diff_collection
La siguiente salida aparecerá después de ejecutar la URL.
Voltear los datos de la colección
La dar la vuelta() El método se utiliza para hacer la clave del valor y el valor de la clave de la colección. Agregue el siguiente código en CollectionController para verificar la función del dar la vuelta() método. Una colección de tres elementos se define en el código. La dar la vuelta() El método se aplica a la colección y la salida del dar la vuelta() El método se imprime utilizando el dd () método.
función pública flip_data ()// Declarar la colección
$ productos = recolectar (['nombre' => 'Samsung A40', 'marca' => 'Samsung', 'precio' => '$ 300']);
// volcar el contenido de la variable en el navegador
dd ($ productos-> flip ());
Agregue la siguiente ruta en el rutas \ web.php archivo para llamar al flip_data ().
Route :: get ('flip_collection', '[email protected] _data');Ingrese la siguiente URL en el navegador para verificar la salida.
http: // localhost: 8000 / flip_collection
La siguiente salida aparecerá después de ejecutar la URL.
Recuperar la colección
La obtener() El método se utiliza para leer el valor de una clave particular de la colección. Agregue el siguiente código en el CollectionController. El valor de la 'nombre' La clave se recupera en el código utilizando el obtener() método.
Función pública retrieve_data ()// Declarar la colección
$ productos = recolectar (['nombre' => 'Samsung A40', 'marca' => 'Samsung', 'precio' => '$ 300']);
dd ($ productos-> get ('nombre'));
Agregue la siguiente ruta en el rutas \ web.php archivo para llamar al recuperar datos().
Route :: get ('read_collection', '[email protected] _data');Ingrese la siguiente URL en el navegador para verificar la salida.
http: // localhost: 8000 / read_collection
La siguiente salida aparecerá después de ejecutar la URL.
Datos de recopilación de grupos
La agrupar por() El método se utiliza para crear una nueva colección a partir de otra colección agrupando según el valor de clave particular. Agregue el siguiente código dentro del CollectionController. La agrupar por() El método se usa aquí para devolver una nueva colección agrupando los valores basados en el 'abr' clave.
función pública group_data()
public function group_data ()$ ventas = cobrar ([
['Jan' => 100000],
['Mar' => 500000],
['Abr' => 600000],
['Jan' => 450000],
['Jun' => 230000],
['Ago' => 600000],
['Sep' => 789333],
['Jul' => 452000],
['Jan' => 700000],
['Abr' => 490000],
['Jun' => 670000],
['Abr' => 560000]
]);
dd ($ ventas-> groupBy ('Abr'));
Agregue la siguiente ruta en el rutas \ web.php archivo para llamar al group_data ().
Route :: get ('group_collection', '[email protected] _data');Ingrese la siguiente URL en el navegador para verificar la salida.
http: // localhost: 8000 / group_collection
La siguiente salida aparecerá después de ejecutar la URL.
Combinar datos de recopilación
La implosionar () El método se utiliza para combinar valores clave particulares de la colección. Agregue el siguiente código dentro del CollectionController. La implosionar () El método se utiliza aquí para combinar los valores de la nombre clave de la colección con espacio.
función pública join_data ()// Declarar una colección
$ customer = collect ([['id' => '894673', 'name' => 'Rahman', 'email' => '[email protected]'],
['id' => '454886', 'name' => 'Janifer', 'email' => '[email protected]'],
['id' => '306007', 'name' => 'Micheal', 'email' => '[email protected]']]);
// Combinar e imprimir el valor
dd ($ cliente-> implosión ('nombre', "));
Agregue la siguiente ruta en el rutas \ web.php archivo para llamar al join_data ().
Route :: get ('join_collection', '[email protected] _data');Ingrese la siguiente URL en el navegador para verificar la salida.
http: // localhost: 8000 / join_collection
La siguiente salida aparecerá después de ejecutar la URL.
Leer claves de colección
La llaves() El método se utiliza para crear una nueva colección con todas las claves de otra colección. Agregue el siguiente código dentro del CollectionController. La colección definida en el código contiene diferentes tipos de datos como elementos, como el valor con índice numérico, el valor con clave y otra matriz.
función pública read_keys ()// Declarar una colección
$ mixdata = recopilar ([
['sitio web' => 'google.com ',' type '=>' motor de búsqueda '],' language '=>' PHP ',
1234, 'nombre' => 'Fahmida', 'juego' => 'PUBG', 'color' => 'azul']);
// Imprime la nueva colección generada por el método keys ()
dd ($ mixdata-> keys ());
Agregue la siguiente ruta en el rutas \ web.php archivo para llamar al read_keys ().
Route :: get ('key_collection', '[email protected] _keys');Ingrese la siguiente URL en el navegador para verificar la salida.
http: // localhost: 8000 / key_collection
La siguiente salida aparecerá después de ejecutar la URL.
Conclusión
La colección Laravel le permite realizar muchos tipos diferentes de tareas con datos, como matrices PHP. Algunos métodos útiles de Laravel Collection se explican en este tutorial utilizando un código muy simple. Eloquent ORM es otro uso de la colección en Laravel que no se cubre en este tutorial. Una limitación importante de la clase de colección es que genera una nueva colección cada vez que se llama a un método porque no es mutable. Después de leer este tutorial, el lector debería conocer algunos usos básicos de la colección Laravel.