Tutoriel de la collection Laravel

Tutoriel de la collection Laravel
La collection Laravel est une caractéristique utile du framework Laravel. Une collection fonctionne comme un tableau PHP, mais c'est plus pratique. La classe de collection est située dans le Illuminer \ support \ collection emplacement. Une collection vous permet de créer une chaîne de méthodes pour cartographier ou réduire les tableaux. Il n'est pas modifiable et une nouvelle collection revient lorsque la méthode de collection est appelée. Il s'agit d'un emballage API pour les fonctions de tableau PHP et une collection peut être générée à partir d'un tableau. Ce tutoriel vous montre comment créer et utiliser une collection dans n'importe quel projet Laravel.

Prérequis

Vous devez créer un projet Laravel avant de commencer ce tutoriel. Vous devez également avoir une connaissance de base du contrôleur et du routage.

Créer une collection

Créer le contrôleur nommé Collection Controller et écrire le code nécessaire pour créer une nouvelle collection à l'intérieur du contrôleur. Exécutez la commande suivante pour créer le contrôleur.

$ PHP Artisan Make: Contrôleur Collection Controller

Vous pouvez créer une collection à l'aide d'une classe de collection ou de la méthode Collect (). Les deux façons sont présentées ci-dessous. Ajouter la ligne suivante en haut du Collection Controller classe pour utiliser le collection classe.

// Ajouter la classe de collection
Utiliser illuminate \ support \ collection;

UN. Créer une collection à l'aide de la classe

Créer le collection_class () Méthode avec le code suivant à l'intérieur du CollectionConntroller. Ici, une collection de numéros est créée avec une classe de collection. Lorsque cette méthode est appelée, les valeurs de la variable de collecte seront affichées dans le navigateur.

Collection de fonctions publiques_class ()
// Créer une nouvelle collection en utilisant la classe de collection
$ Collection1 = nouvelle collection ([67,34,89,56,23]);
// vide le contenu variable dans le navigateur
DD ($ Collection1);

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour appeler le collection_class ().

Route :: Get ('Collect1', 'CollectionController @ Collection_Class');

Entrez l'URL suivante dans le navigateur pour vérifier la sortie.

http: // localhost: 8000 / collect1

La sortie suivante apparaîtra après l'exécution de l'URL. Les cinq numéros de la collection sont imprimés ici.

B. Créer une collection à l'aide de la méthode

Une collection peut également être créée en utilisant le collecter() méthode. Ajouter ce qui suit Collect_Method () à l'intérieur de Collection Controller Pour créer une collection de chaînes en utilisant le collecter() méthode. Lorsque cette méthode est appelée, les valeurs de la variable de collecte seront affichées dans le navigateur, comme avant.

fonction publique collection_method ()
// Créer une nouvelle collection en utilisant la méthode Collect
$ Collection2 = Collect (["Good", "Metter", "Best"]);
// vide le contenu variable dans le navigateur
DD ($ Collection2);

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour appeler le Collect_Method ().

Route :: Get ('Collect2', 'CollectionController @ Collect_Method');

Entrez l'URL suivante dans le navigateur pour vérifier la sortie.

http: // localhost: 8000 / Collect2

La sortie suivante apparaîtra après l'exécution de l'URL. Les trois valeurs de chaîne de la collection sont imprimées ici.

Rechercher des données dans la collecte

Les données peuvent être recherchées à partir de la collection de plusieurs manières. Ajouter le code suivant à l'intérieur du Collection Controller. Deux types de recherche sont affichés dans le code. Tout d'abord, une collection de clients est définie et le contient() La méthode est utilisée pour rechercher le client nommé 'Janifer.' Ensuite, une collection du tableau multidimensionnel est définie, et le où() La méthode est utilisée pour deux types de recherche dans la collection. La première où() la méthode est utilisée pour rechercher les informations, où le IDENTIFIANT La clé contient la valeur '011176645.' La deuxième où() la méthode est utilisée pour rechercher les informations où le Des marques de CSE409 est 88.

Fonction publique Search_Data ()

// Déclarer une collection
$ client = collection ([['id' => '894673', 'name' => 'Rahman', 'email' => 'rah @ gmail.com '],
['id' => '454886', 'name' => 'Janifer', 'email' => 'ganifer @ gmail.com '],
['id' => '306007', 'name' => 'micheal', 'email' => 'mic @ gmail.com ']]);
// Recherche en utilisant contient la méthode
if ($ client-> contient ('name', 'Janifer'))

Echo "Janifer existe dans la liste des clients.
"

// Déclarer une autre collection
$ marks = Collect ([
['Id' => '011176644', 'marks' => ['cse401' => 87, 'cse409' => 88]],
['Id' => '011176645', 'marks' => ['cse402' => 69, 'cse409' => 75]]],
]));
// Recherchez en utilisant la méthode où
echo $ marks-> où ('id', '011176645')."
"
echo $ marks-> où ('marques.CSE409 ', 88);

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour appeler le search_data ().

Route :: get ('src_collection', 'CollectionController @ search_data');

Entrez l'URL suivante dans le navigateur pour vérifier la sortie.

http: // localhost: 8000 / src_collection

La sortie suivante apparaîtra après l'exécution de l'URL.

Données de collecte de filtre

Le filtre() La méthode est utilisée pour filtrer les données de la collection. Ajouter le code suivant dans Collection Controller. Une collection de des produits est défini dans le code qui contient le nom et le prix du produit. Le filtre() la méthode est utilisée pour filtrer les données de la collecte dont le prix la valeur est supérieure à 4000. La collecte de données filtrées est convertie en un tableau et imprimé par le pour boucle.

Fonction publique filter_data ()

// Déclarer une collection
$ Products = Collect ([
['Product' => 'HDD', 'Price' => 6000],
['Product' => 'Mouse', 'Price' => 500],
['Product' => 'Monitor', 'Price' => 5000],
['Product' => 'Imprimante', 'Price' => 4000],
]));
// Créer une autre liste après le filtrage des données en fonction de la valeur de prix
$ filter_price = $ Products-> filtre (fonction ($ item)
return data_get ($ item, 'prix')> 4000;
);
// Lire toutes les données sous forme de tableau de la nouvelle collection
$ filtory = $ filter_price-> all ();
// itération des valeurs du tableau à l'aide de la boucle
foreach ($ filtré en valeur $)

Echo "Nom:".$ Value ['Product'].","."Prix: ".$ Value ['Price']."
"

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour appeler le filter_data ().

Route :: get ('filter_collection', 'CollectionController @ filter_data');

Entrez l'URL suivante dans le navigateur pour vérifier la sortie.

http: // localhost: 8000 / filter_collection

La sortie suivante apparaîtra après l'exécution de l'URL.

Trier les données de collecte

Divers trier Des méthodes existent dans Laravel pour trier les données de collecte. Ajouter le code suivant dans le Collection Controller. Une collection de livres est définie dans le code. Le Trier par() La méthode est utilisée pour trier les données de collecte en fonction de la clé »auteur.'Ensuite, les valeurs de la variable de collecte triée sont imprimées dans le navigateur.

fonction publique sort_data ()
// Déclarer une collection
$ books = Collect ([
['name' => 'Python Cookbook: Recettes pour maîtriser Python 3',
'Auteur' => 'David Beazley'],
['name' => 'Apprenez Python en 1 jour: Guide Python complet avec des exemples',
'auteur' => 'Krishna Rungta'],
['name' => 'Programmation Python: une introduction à l'informatique',
'Auteur' => 'John M. Zelle '],
['name' => 'Référence de poche Python 5ed: Python dans votre poche',
'auteur' => 'Mark Lutz']
]));
// trier les données de collecte en fonction du nom de l'auteur
$ tridbook = $ books-> sortby ('auteur');
// vide le contenu variable dans le navigateur
dd ($ tridbook-> valeurs () -> toArray ());

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour appeler le sort_data ().

Route :: get ('sort_collection', 'collectionController @ sort_data');

Entrez l'URL suivante dans le navigateur pour vérifier la sortie.

http: // localhost: 8000 / sort_collection

La sortie suivante apparaîtra après l'exécution de l'URL.

Données de collecte de tranche

Une partie particulière peut être coupée de la collection en utilisant le prendre() méthode. Ajouter le code suivant dans le Collection Controller. Le prendre() La méthode est utilisée dans le code pour créer une nouvelle liste en coupant les trois premiers éléments de la collection. Ensuite, le pour Loop imprime les valeurs de la nouvelle collection.

fonction publique Slice_data ()
// Déclarer une collection
$ Langues = Collect (['php', 'Bash', 'Python', 'Java', 'C #', 'C ++']);
// Récupérer les trois premières données
$ slice = $ langues-> prendre (3);
// itération des valeurs de collecte
foreach ($ Slice as $ valeur)

Echo $ valeur."";

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour appeler le slice_data ().

Route :: get ('Slice_Collection', 'CollectionController @ Slice_Data');

Entrez l'URL suivante dans le navigateur pour vérifier la sortie.

http: // localhost: 8000 / slice_collection

La sortie suivante apparaîtra après l'exécution de l'URL.

Trouvez la différence entre deux collections

Le diff () La méthode est utilisée pour trouver des valeurs de la première collection qui n'existent pas dans la deuxième collection. Ajouter le code suivant dans CollectionController. Deux variables de collection sont définies ici. Le diff () la méthode génère une nouvelle collection après avoir récupéré les valeurs de liste 1 qui n'existent pas dans list2.

fonction publique find_diff ()
// Déclarer deux collections
$ list1 = Collect (['Notebook', 'Pen', 'Sharpner', 'Scale', 'crayon']);
$ list2 = Collect (['crayon', 'couleur crayon', 'couleur papier', 'stylo']);
// Trouvez les données existantes dans List1 mais pas dans List2
$ newList = $ list1-> diff ($ list2);
// vide le contenu variable dans le navigateur
dd ($ newlist);

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour appeler le find_diff ().

Route :: get ('Diff_Collection', 'CollectionController @ Find_diff');

Entrez l'URL suivante dans le navigateur pour vérifier la sortie.

http: // localhost: 8000 / diff_collection

La sortie suivante apparaîtra après l'exécution de l'URL.

Flip Collection Data

Le retourner() La méthode est utilisée pour faire la clé de la valeur et la valeur de la clé de la collection. Ajoutez le code suivant dans le CollectionController pour vérifier la fonction du retourner() méthode. Une collection de trois éléments est définie dans le code. Le retourner() la méthode est appliquée à la collection et à la sortie du retourner() la méthode est imprimée en utilisant le dd () méthode.

fonction publique flip_data ()
// Déclarer la collection
$ Products = Collect (['name' => 'Samsung A40', 'Brand' => 'Samsung', 'Price' => '300 $']);
// vide le contenu variable dans le navigateur
dd ($ products-> flip ());

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour appeler le flip_data ().

Route :: get ('flip_collection', 'collectionController @ flip_data');

Entrez l'URL suivante dans le navigateur pour vérifier la sortie.

http: // localhost: 8000 / flip_collection

La sortie suivante apparaîtra après l'exécution de l'URL.

Récupérer la collection

Le obtenir() La méthode est utilisée pour lire la valeur d'une clé particulière de la collection. Ajouter le code suivant dans le Collection Controller. La valeur du 'nom' La clé est récupérée dans le code en utilisant le obtenir() méthode.

Fonction publique récupération_data ()
// Déclarer la collection
$ Products = Collect (['name' => 'Samsung A40', 'Brand' => 'Samsung', 'Price' => '300 $']);
dd ($ product-> get ('name'));

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour appeler le rétrive_data ().

Route :: get ('read_collection', 'CollectionController @ Retrieve_Data');

Entrez l'URL suivante dans le navigateur pour vérifier la sortie.

http: // localhost: 8000 / read_collection

La sortie suivante apparaîtra après l'exécution de l'URL.

Données de collecte de groupes

Le par groupe() La méthode est utilisée pour créer une nouvelle collection à partir d'une autre collection en regroupant en fonction de la valeur clé particulière. Ajouter le code suivant à l'intérieur du Collection Controller. Le par groupe() La méthode est utilisée ici pour renvoyer une nouvelle collection en regroupant les valeurs en fonction du 'Avr' clé.

fonction publique group_data()

Fonction publique Group_Data ()
$ Sales = Collect ([
['Jan' => 100000],
['Mar' => 500000],
['APR' => 600000],
['Jan' => 450000],
['Jun' => 230000],
['Aug' => 600000],
['Sep' => 789333],
['Juil' => 452000],
['Jan' => 700000],
['Avr' => 490000],
['Jun' => 670000],
['Avr' => 560000]
]));
DD ($ Sales-> Groupby ('APR'));

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour appeler le group_data ().

Route :: Get ('Group_Collection', 'CollectionController @ Group_Data');

Entrez l'URL suivante dans le navigateur pour vérifier la sortie.

http: // localhost: 8000 / group_collection

La sortie suivante apparaîtra après l'exécution de l'URL.

Combiner les données de collecte

Le implode () La méthode est utilisée pour combiner des valeurs clés particulières de la collection. Ajouter le code suivant à l'intérieur du Collection Controller. Le implode () la méthode est utilisée ici pour combiner les valeurs du nom Clé de la collection avec l'espace.

fonction publique join_data ()
// Déclarer une collection
$ client = collection ([['id' => '894673', 'name' => 'Rahman', 'email' => 'rah @ gmail.com '],
['id' => '454886', 'name' => 'Janifer', 'email' => 'ganifer @ gmail.com '],
['id' => '306007', 'name' => 'micheal', 'email' => 'mic @ gmail.com ']]);
// combiner et imprimer la valeur
dd ($ client-> implode ('name', "));

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour appeler le join_data ().

Route :: get ('join_collection', 'collectionController @ join_data');

Entrez l'URL suivante dans le navigateur pour vérifier la sortie.

http: // localhost: 8000 / join_collection

La sortie suivante apparaîtra après l'exécution de l'URL.

Lire les clés de la collection

Le clés() La méthode est utilisée pour créer une nouvelle collection avec toutes les clés d'une autre collection. Ajouter le code suivant à l'intérieur du Collection Controller. La collection définie dans le code contient différents types de données en tant qu'éléments, tels que la valeur avec l'index numérique, la valeur avec clé et un autre tableau.

fonction publique read_keys ()
// Déclarer une collection
$ mixData = Collect ([
['site Web' => 'Google.com ',' type '=>' Search Engine '],' Langue '=>' Php ',
1234, 'name' => 'Fahmida', 'Game' => 'PUBG', 'Color' => 'Blue']);
// Imprime la nouvelle collection générée par la méthode des clés ()
dd ($ mixData-> keys ());

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour appeler le read_keys ().

Route :: get ('key_collection', 'collectionController @ read_keys');

Entrez l'URL suivante dans le navigateur pour vérifier la sortie.

http: // localhost: 8000 / key_collection

La sortie suivante apparaîtra après l'exécution de l'URL.

Conclusion

La collection Laravel vous permet de faire de nombreux types de tâches avec des données, comme les tableaux PHP. Certaines méthodes utiles de la collection Laravel sont expliquées dans ce tutoriel en utilisant un code très simple. Eloquent Orm est une autre utilisation de la collection dans Laravel qui n'est pas couverte dans ce tutoriel. Une limitation majeure de la classe de collection est qu'elle génère une nouvelle collection à chaque fois qu'une méthode est appelée car elle n'est pas mutable. Après avoir lu ce tutoriel, le lecteur devrait maintenant connaître certaines utilisations de base de la collection Laravel.