laravel

Laravel Collection Tutorial

Laravel Collection Tutorial
Laravel-samlingen er et nyttigt træk ved Laravel-rammen. En samling fungerer som et PHP-array, men det er mere praktisk. Samlingsklassen er placeret i Illuminate \ Support \ Collection Beliggenhed. En samling giver dig mulighed for at oprette en kæde af metoder til at kortlægge eller reducere arrays. Det kan ikke ændres, og en ny samling vender tilbage, når opsamlingsmetoden kaldes. Det er en API-indpakning til PHP-matrixfunktioner, og en samling kan genereres fra en matrix. Denne vejledning viser dig, hvordan du opretter og bruger en samling i ethvert Laravel-projekt.

Forudsætning

Du skal oprette et Laravel-projekt inden du starter denne tutorial. Du skal også have en grundlæggende viden om controller og routing.

Opret en samling

Opret den controller, der hedder CollectionController og skriv den nødvendige kode for at oprette en ny samling inde i controlleren. Kør følgende kommando for at oprette controlleren.

$ php håndværkermærke: controller CollectionController

Du kan oprette en samling ved hjælp af en samlingsklasse eller metoden collect (). Begge måder er vist nedenfor. Tilføj følgende linje øverst på CollectionController klasse til at bruge kollektion klasse.

// Tilføj samlingsklassen
brug Illuminate \ Support \ Collection;

EN. Opret samling ved hjælp af klasse

Opret collection_class () metode med følgende kode inde i CollectionConntroller. Her oprettes en samling af numre med en samlingsklasse. Når denne metode kaldes, vises værdierne for samlingsvariablen i browseren.

offentlig funktion collection_class ()
// Opret en ny samling ved hjælp af samlingsklassen
$ collection1 = ny samling ([67,34,89,56,23]);
// dump det variable indhold i browseren
dd ($ collection1);

Tilføj følgende rute i ruter \ web.php fil for at ringe til collection_class ().

Rute :: get ('collect1', '[email protected] _class');

Indtast følgende URL i browseren for at kontrollere output.

http: // localhost: 8000 / collect1

Følgende output vises efter kørsel af URL'en. Samlingens fem numre er trykt her.

B. Opret samling ved hjælp af metode

En samling kan også oprettes ved hjælp af indsamle() metode. Tilføj følgende indsamle metode () inde i CollectionController for at oprette en samling strenge ved hjælp af indsamle() metode. Når denne metode kaldes, vises værdierne for samlingsvariablen i browseren som før.

offentlig funktion collect_method ()
// Opret en ny samling ved hjælp af indsamlingsmetoden
$ collection2 = collect (["Godt", "Bedre", "Bedst"]);
// dump det variable indhold i browseren
dd ($ collection2);

Tilføj følgende rute i ruter \ web.php fil for at ringe til indsamle metode ().

Rute :: get ('collect2', '[email protected] _method');

Indtast følgende URL i browseren for at kontrollere output.

http: // localhost: 8000 / collect2

Følgende output vises efter kørsel af URL'en. De tre strengværdier i samlingen er trykt her.

Søg data i indsamling

Dataene kan søges fra samlingen på flere måder. Tilføj følgende kode inde i CollectionController. To typer søgninger vises i koden. For det første defineres en samling kunder, og indeholder() metode bruges til at søge på den navngivne kunde 'Janifer.'' Dernæst defineres en samling af det flerdimensionale array, og hvor() metode bruges til to typer søgninger i samlingen. Den første hvor() metoden bruges til at søge i informationen, hvor ID nøgle indeholder værdien '011176645.'' Sekundet hvor() metoden bruges til at søge efter de oplysninger, hvor mærker af CSE409 er 88.

offentlig funktion søgedata ()

// Erklær en samling
$ customer = collect ([['id' => '894673', 'name' => 'Rahman', 'email' => '[email protected]'],
['id' => '454886', 'name' => 'Janifer', 'email' => '[e-mailbeskyttet]'],
['id' => '306007', 'name' => 'Micheal', 'email' => '[e-mail-beskyttet]']]);
// Søg ved hjælp af metoden
hvis ($ kunde-> indeholder ('navn', 'Janifer'))

ekko "Janifer findes på kundelisten.
";

// Erklær en anden samling
$ mark = indsamle ([
['ID' => '011176644', 'marks' => ['CSE401' => 87, 'CSE409' => 88]],
['ID' => '011176645', 'marks' => ['CSE402' => 69, 'CSE409' => 75]],
]);
// Søg ved hjælp af hvor-metoden
echo $ marks-> where ('ID', '011176645')."
";
echo $ marks-> where ('markerer.CSE409 ', 88);

Tilføj følgende rute i ruter \ web.php fil for at ringe til søgningsdata ().

Rute :: get ('src_collection', '[email protected] _data');

Indtast følgende URL i browseren for at kontrollere output.

http: // localhost: 8000 / src_collection

Følgende output vises efter kørsel af URL'en.

Filtrer indsamlingsdata

Det filter() metoden bruges til at filtrere data fra samlingen. Tilføj følgende kode i CollectionController. En samling af Produkter er defineret i den kode, der indeholder produktnavn og pris. Det filter() Metoden bruges til at filtrere data fra den samling, hvoraf pris værdi er større end 4000. Samlingen af ​​filtrerede data konverteres til en matrix og udskrives af til løkke.

offentlig funktion filter_data ()

// Erklær en samling
$ produkter = indsamle ([
['product' => 'HDD', 'price' => 6000],
['product' => 'Mus', 'price' => 500],
['product' => 'Monitor', 'price' => 5000],
['product' => 'Printer', 'price' => 4000],
]);
// Opret en anden liste efter filtrering af data baseret på prisværdi
$ filter_price = $ products-> filter (funktion ($ item)
returner data_get ($ vare, 'pris')> 4000;
);
// Læs alle data som array fra den nye samling
$ filtreret = $ filter_price-> alle ();
// Iterering af arrayværdier ved hjælp af loop
foreach ($ filtreret som $ værdi)

ekko "Navn:".$ værdi ['produkt'].","."Pris:".$ værdi ['pris']."
";

Tilføj følgende rute i ruter \ web.php fil for at ringe til filter_data ().

Rute :: get ('filter_collection', '[email protected] _data');

Indtast følgende URL i browseren for at kontrollere output.

http: // localhost: 8000 / filter_collection

Følgende output vises efter kørsel af URL'en.

Sorter indsamlingsdata

Forskellige sortere der findes metoder i Laravel til at sortere indsamlingsdata. Tilføj følgende kode i CollectionController. En samling bøger er defineret i koden. Det Sorter efter() metode bruges til at sortere indsamlingsdataene baseret på nøglen 'forfatter.'Derefter udskrives værdierne for den sorterede samlingsvariabel i browseren.

offentlig funktion sort_data ()
// Erklær en samling
$ books = indsamle ([
['name' => 'Python Cookbook: Opskrifter til mastering af Python 3',
'author' => 'David Beazley'],
['name' => 'Lær Python på 1 dag: Komplet Python-guide med eksempler',
'author' => 'Krishna Rungta'],
['name' => 'Python-programmering: En introduktion til datalogi',
'author' => 'John M. Zelle '],
['name' => 'Python Pocket Reference 5ed: Python in your Pocket',
'author' => 'Mark Lutz']
]);
// Sorter indsamlingsdata baseret på forfatternavn
$ sortedBook = $ books-> sortBy ('author');
// dump det variable indhold i browseren
dd ($ sortedBook-> values ​​() -> toArray ());

Tilføj følgende rute i ruter \ web.php fil for at ringe til sort_data ().

Rute :: get ('sort_collection', '[email protected] _data');

Indtast følgende URL i browseren for at kontrollere output.

http: // localhost: 8000 / sort_collection

Følgende output vises efter kørsel af URL'en.

Data om indsamling af udsnit

En bestemt del kan skæres fra samlingen ved hjælp af tage() metode. Tilføj følgende kode i CollectionController. Det tage() metode bruges i koden til at oprette en ny liste ved at klippe de første tre emner fra samlingen. Dernæst til loop udskriver værdierne for den nye samling.

offentlig funktion slice_data ()
// Erklær en samling
$ languages ​​= collect (['PHP', 'Bash', 'Python', 'Java', 'C #', 'C ++']);
// Gendan de første tre data
$ skive = $ sprog-> tag (3);
// Iterering af samlingsværdier
foreach ($ skive som $ værdi)

ekko $ værdi."";

Tilføj følgende rute i ruter \ web.php fil for at ringe til slice_data ().

Rute :: get ('slice_collection', '[email protected] _data');

Indtast følgende URL i browseren for at kontrollere output.

http: // localhost: 8000 / slice_collection

Følgende output vises efter kørsel af URL'en.

Find forskellen mellem to samlinger

Det diff () Metoden bruges til at finde værdier fra den første samling, der ikke findes i den anden samling. Tilføj følgende kode i CollectionController. To definitionsvariabler er defineret her. Det diff () metode genererer en ny samling efter hentning af værdierne fra liste1 der ikke findes i liste2.

offentlig funktion find_diff ()
// Erklær to samlinger
$ list1 = indsamle (['Notebook', 'Pen', 'Sharpner', 'Scale', 'Pencil']);
$ list2 = indsamle (['Blyant', 'Farveblyant', 'Farvepapir', 'Pen']);
// Find hvilke data der findes i liste1, men ikke i liste2
$ newList = $ list1-> diff ($ list2);
// dump det variable indhold i browseren
dd ($ newList);

Tilføj følgende rute i ruter \ web.php fil for at ringe til find_diff ().

Rute :: get ('diff_collection', '[email protected] _diff');

Indtast følgende URL i browseren for at kontrollere output.

http: // localhost: 8000 / diff_collection

Følgende output vises efter kørsel af URL'en.

Flip-indsamlingsdata

Det flip () metode bruges til at lave nøglen til værdien og værdien til nøglen til samlingen. Tilføj følgende kode i CollectionController for at kontrollere funktion af flip () metode. En samling på tre ting er defineret i koden. Det flip () metoden anvendes til indsamling og output af flip () metoden udskrives ved hjælp af dd () metode.

offentlig funktion flip_data ()
// Erklær samlingen
$ produkter = indsamle (['name' => 'Samsung A40', 'brand' => 'Samsung', 'price' => '$ 300']);
// dump det variable indhold i browseren
dd ($ produkter-> flip ());

Tilføj følgende rute i ruter \ web.php fil for at ringe til flip_data ().

Rute :: get ('flip_collection', '[email protected] _data');

Indtast følgende URL i browseren for at kontrollere output.

http: // localhost: 8000 / flip_collection

Følgende output vises efter kørsel af URL'en.

Hent samlingen

Det få() metode bruges til at læse værdien af ​​en bestemt nøgle fra samlingen. Tilføj følgende kode i CollectionController. Værdien af ​​'navn' nøglen hentes i koden ved hjælp af få() metode.

Offentlig funktion retrieve_data ()
// Erklær samlingen
$ produkter = indsamle (['name' => 'Samsung A40', 'brand' => 'Samsung', 'price' => '$ 300']);
dd ($ products-> get ('name'));

Tilføj følgende rute i ruter \ web.php fil for at ringe til hente_data ().

Rute :: get ('read_collection', '[email protected] _data');

Indtast følgende URL i browseren for at kontrollere output.

http: // localhost: 8000 / read_collection

Følgende output vises efter kørsel af URL'en.

Gruppesamlingsdata

Det groupBy () metode bruges til at oprette en ny samling fra en anden samling ved at gruppere baseret på den bestemte nøgleværdi. Tilføj følgende kode inde i CollectionController. Det groupBy () metode bruges her til at returnere en ny samling ved at gruppere værdierne baseret på 'Apr'nøgle.

offentlig funktion gruppedata()

offentlig funktion group_data ()
$ salg = indsamle ([
['Jan' => 100000],
['Mar' => 500000],
['Apr' => 600000],
['Jan' => 450000],
['Jun' => 230000],
['Aug' => 600000],
['Sep' => 789333],
['Jul' => 452000],
['Jan' => 700000],
['Apr' => 490000],
['Jun' => 670000],
['Apr' => 560000]
]);
dd ($ salg-> groupBy ('Apr'));

Tilføj følgende rute i ruter \ web.php fil for at ringe til gruppedata ().

Rute :: get ('group_collection', '[email protected] _data');

Indtast følgende URL i browseren for at kontrollere output.

http: // localhost: 8000 / group_collection

Følgende output vises efter kørsel af URL'en.

Kombiner indsamlingsdata

Det implodere () metode bruges til at kombinere bestemte nøgleværdier fra samlingen. Tilføj følgende kode inde i CollectionController. Det implodere () Metoden bruges her til at kombinere værdierne for navn samlingens nøgle med plads.

offentlig funktion join_data ()
// Erklær en samling
$ kunde = indsamle ([['id' => '894673', 'name' => 'Rahman', 'email' => '[e-mail-beskyttet]'],
['id' => '454886', 'name' => 'Janifer', 'email' => '[e-mailbeskyttet]'],
['id' => '306007', 'name' => 'Micheal', 'email' => '[email protected]']]);
// Kombiner og udskriv værdien
dd ($ kunde-> implode ('navn', "));

Tilføj følgende rute i ruter \ web.php fil for at ringe til join_data ().

Rute :: get ('join_collection', '[email protected] _data');

Indtast følgende URL i browseren for at kontrollere output.

http: // localhost: 8000 / join_collection

Følgende output vises efter kørsel af URL'en.

Læs samlingstaster

Det nøgler () metode bruges til at oprette en ny samling med alle nøglerne til en anden samling. Tilføj følgende kode inde i CollectionController. Samlingen defineret i koden indeholder forskellige typer data som elementer, såsom værdien med det numeriske indeks, værdien med nøglen og en anden matrix.

offentlig funktion læsetaster ()
// Erklær en samling
$ mixdata = indsamle ([
['website' => 'google.com ',' type '=>' søgemaskine '],' sprog '=>' PHP ',
1234, 'name' => 'Fahmida', 'game' => 'PUBG', 'color' => 'blue']);
// Udskriv den nye samling genereret ved hjælp af nøgler () -metoden
dd ($ mixdata-> nøgler ());

Tilføj følgende rute i ruter \ web.php fil for at ringe til læsetaster ().

Rute :: get ('key_collection', '[email protected] _keys');

Indtast følgende URL i browseren for at kontrollere output.

http: // localhost: 8000 / key_collection

Følgende output vises efter kørsel af URL'en.

Konklusion

Laravel-samling giver dig mulighed for at udføre mange forskellige typer opgaver med data, som f.eks. PHP-arrays. Nogle nyttige metoder til Laravel Collection forklares i denne vejledning ved hjælp af meget enkel kode. Eloquent ORM er en anden brug af samlingen i Laravel, der ikke er dækket af denne vejledning. En vigtig begrænsning af samlingsklassen er, at den genererer en ny samling, hver gang en metode kaldes, fordi den ikke kan ændres. Efter at have læst denne vejledning, skal læseren nu kende nogle grundlæggende anvendelser af Laravel-samlingen.

Mus Sådan ændres musemarkør og markørstørrelse, farve og skema på Windows 10
Sådan ændres musemarkør og markørstørrelse, farve og skema på Windows 10
Musemarkøren og markøren i Windows 10 er meget vigtige aspekter af operativsystemet. Dette kan også siges om andre operativsystemer, så i sandhed er d...
Gratis og open source-spilmotorer til udvikling af Linux-spil
Denne artikel dækker en liste over gratis og open source-spilmotorer, der kan bruges til at udvikle 2D- og 3D-spil på Linux. Der er mange sådanne spil...
Shadow of the Tomb Raider til Linux-vejledning
Shadow of the Tomb Raider er den tolvte tilføjelse til Tomb Raider-serien - en action-adventure-spilfranchise oprettet af Eidos Montreal. Spillet blev...