laravel

Laravel Collection Tutorial

Laravel Collection Tutorial
Laravel-samlingen er et nyttig trekk ved Laravel-rammeverket. En samling fungerer som et PHP-utvalg, men det er mer praktisk. Samlingsklassen ligger i Illuminate \ Support \ Collection plassering. En samling lar deg lage en kjede av metoder for å kartlegge eller redusere matriser. Det kan ikke endres, og en ny samling kommer tilbake når samlingsmetoden kalles. Det er en API-innpakning for PHP-matrisefunksjoner, og en samling kan genereres fra en matrise. Denne veiledningen viser deg hvordan du oppretter og bruker en samling i ethvert Laravel-prosjekt.

Forutsetning

Du må opprette et Laravel-prosjekt før du starter denne opplæringen. Du må også ha en grunnleggende kunnskap om kontroller og ruting.

Lag en samling

Opprett kontrolleren som heter CollectionController og skriv den nødvendige koden for å opprette en ny samling inne i kontrolleren. Kjør følgende kommando for å opprette kontrolleren.

$ php håndverksmerke: controller CollectionController

Du kan opprette en samling ved hjelp av en samlingsklasse eller samle () -metoden. Begge måter er vist nedenfor. Legg til følgende linje øverst på CollectionController klasse for å bruke samling klasse.

// Legg til samlingsklassen
bruk Illuminate \ Support \ Collection;

EN. Opprett samling ved hjelp av klasse

Opprett collection_class () metoden med følgende kode inne i CollectionConntroller. Her opprettes en samling av tall med en samlingsklasse. Når denne metoden kalles, vil verdiene til samlingsvariabelen vises i nettleseren.

public function collection_class ()
// Opprett en ny samling ved hjelp av samlingsklassen
$ collection1 = ny samling ([67,34,89,56,23]);
// dump det variable innholdet i nettleseren
dd ($ collection1);

Legg til følgende rute i ruter \ web.php filen for å ringe collection_class ().

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

Skriv inn følgende URL i nettleseren for å sjekke utdataene.

http: // localhost: 8000 / collect1

Følgende utdata vises etter at URL har kjørt. De fem numrene i samlingen er trykt her.

B. Opprett samling ved hjelp av metode

En samling kan også opprettes ved hjelp av samle inn() metode. Legg til følgende samle_metode () inne i CollectionController for å lage en samling strenger ved hjelp av samle inn() metode. Når denne metoden kalles, vil verdiene til samlingsvariabelen vises i nettleseren, som før.

offentlig funksjon collect_method ()
// Opprett en ny samling ved hjelp av samle-metoden
$ collection2 = collect (["Bra", "Bedre", "Best"]);
// dump det variable innholdet i nettleseren
dd ($ collection2);

Legg til følgende rute i ruter \ web.php filen for å ringe samle_metode ().

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

Skriv inn følgende URL i nettleseren for å sjekke utdataene.

http: // localhost: 8000 / collect2

Følgende utdata vises etter at URL har kjørt. De tre strengverdiene i samlingen skrives ut her.

Søke data i samlingen

Dataene kan søkes fra samlingen på flere måter. Legg til følgende kode i CollectionController. To typer søk vises i koden. Først defineres en samling kunder, og inneholder () metoden brukes til å søke i kunden som heter 'Janifer.' Deretter defineres en samling av den flerdimensjonale matrisen, og hvor() metoden brukes til to typer søk i samlingen. Den første hvor() metoden brukes til å søke i informasjonen, der ID nøkkelen inneholder verdien '011176645.' Den andre hvor() metoden brukes til å søke etter informasjonen der merker av CSE409 er 88.

offentlig funksjons søkedata ()

// Erklære en samling
$ kunde = samle ([['id' => '894673', 'name' => 'Rahman', 'email' => '[e-postbeskyttet]'],
['id' => '454886', 'name' => 'Janifer', 'email' => '[e-postbeskyttet]'],
['id' => '306007', 'name' => 'Micheal', 'email' => '[e-postbeskyttet]']]);
// Søk med inneholder metoden
hvis ($ kunde-> inneholder ('navn', 'Janifer'))

ekko "Janifer finnes i kundelisten.
";

// Erklære en annen samling
$ merker = samle ([
['ID' => '011176644', 'marks' => ['CSE401' => 87, 'CSE409' => 88]],
['ID' => '011176645', 'marks' => ['CSE402' => 69, 'CSE409' => 75]],
]);
// Søk ved hjelp av hvor-metoden
echo $ marks-> where ('ID', '011176645')."
";
ekko $ merker-> hvor ('merker.CSE409 ', 88);

Legg til følgende rute i ruter \ web.php filen for å ringe søkedata ().

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

Skriv inn følgende URL i nettleseren for å sjekke utdataene.

http: // localhost: 8000 / src_collection

Følgende utdata vises etter at URL har kjørt.

Filtrer innsamlingsdata

De filter() metoden brukes til å filtrere data fra samlingen. Legg til følgende kode i CollectionController. En samling av Produkter er definert i koden som inneholder produktnavn og pris. De filter() metoden brukes til å filtrere data fra samlingen som pris verdien er større enn 4000. Samlingen av filtrerte data konverteres til en matrise og skrives ut av til Løkke.

offentlig funksjon filter_data ()

// Erklære en samling
$ produkter = samle ([
['product' => 'HDD', 'price' => 6000],
['product' => 'Mus', 'price' => 500],
['product' => 'Monitor', 'price' => 5000],
['product' => 'Printer', 'price' => 4000],
]);
// Opprett en annen liste etter filtrering av dataene basert på prisverdi
$ filter_price = $ products-> filter (funksjon ($ item)
returner data_get ($ vare, 'pris')> 4000;
);
// Les alle data som matrise fra den nye samlingen
$ filtered = $ filter_price-> all ();
// Iterere arrayverdiene ved hjelp av loop
foreach ($ filtrert som $ verdi)

ekko "Navn:".$ verdi ['produkt'].","."Pris:".$ verdi ['pris']."
";

Legg til følgende rute i ruter \ web.php filen for å ringe filter_data ().

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

Skriv inn følgende URL i nettleseren for å sjekke utdataene.

http: // localhost: 8000 / filter_collection

Følgende utdata vises etter at URL har kjørt.

Sorter samlingsdata

Diverse sortere Det finnes metoder i Laravel for å sortere innsamlingsdata. Legg til følgende kode i CollectionController. En samling bøker er definert i koden. De Sorter etter() metoden brukes til å sortere innsamlingsdataene basert på nøkkelen 'forfatter.'Så blir verdiene til den sorterte samlingsvariabelen skrevet ut i nettleseren.

offentlig funksjon sort_data ()
// Erklære en samling
$ books = samle ([
['name' => 'Python Cookbook: Oppskrifter for å mestre Python 3',
'author' => 'David Beazley'],
['name' => 'Lær Python på 1 dag: Komplett Python-guide med eksempler',
'author' => 'Krishna Rungta'],
['name' => 'Python-programmering: En introduksjon til informatikk',
'author' => 'John M. Zelle '],
['name' => 'Python Pocket Reference 5ed: Python in your Pocket',
'author' => 'Mark Lutz']
]);
// Sorter samlingsdataene basert på forfatternavnet
$ sortedBook = $ books-> sortBy ('author');
// dump det variable innholdet i nettleseren
dd ($ sortedBook-> values ​​() -> toArray ());

Legg til følgende rute i ruter \ web.php filen for å ringe sort_data ().

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

Skriv inn følgende URL i nettleseren for å sjekke utdataene.

http: // localhost: 8000 / sort_collection

Følgende utdata vises etter at URL har kjørt.

Slice Collection Data

En bestemt del kan kuttes fra samlingen ved hjelp av ta() metode. Legg til følgende kode i CollectionController. De ta() metoden brukes i koden for å lage en ny liste ved å kutte de tre første elementene fra samlingen. Neste, den til loop skriver ut verdiene til den nye samlingen.

offentlig funksjon slice_data ()
// Erklære en samling
$ languages ​​= collect (['PHP', 'Bash', 'Python', 'Java', 'C #', 'C ++']);
// Gjenopprett de tre første dataene
$ skive = $ språk-> ta (3);
// Iterere samleverdier
foreach ($ skive som $ verdi)

ekko $ verdi."";

Legg til følgende rute i ruter \ web.php filen for å ringe slice_data ().

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

Skriv inn følgende URL i nettleseren for å sjekke utdataene.

http: // localhost: 8000 / slice_collection

Følgende utdata vises etter at URL har kjørt.

Finn forskjellen mellom to samlinger

De diff () metoden brukes til å finne verdier fra den første samlingen som ikke finnes i den andre samlingen. Legg til følgende kode i CollectionController. To samlingsvariabler er definert her. De diff () metoden genererer en ny samling etter henting av verdiene fra liste1 som ikke eksisterer i liste2.

offentlig funksjon find_diff ()
// Erklære to samlinger
$ list1 = collect (['Notebook', 'Pen', 'Sharpner', 'Scale', 'Pencil']);
$ list2 = samle (['Blyant', 'Fargeblyant', 'Fargepapir', 'Penn']);
// Finn hvilke data som finnes i liste1, men ikke i liste2
$ newList = $ list1-> diff ($ list2);
// dump det variable innholdet i nettleseren
dd ($ newList);

Legg til følgende rute i ruter \ web.php filen for å ringe find_diff ().

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

Skriv inn følgende URL i nettleseren for å sjekke utdataene.

http: // localhost: 8000 / diff_collection

Følgende utdata vises etter at URL har kjørt.

Vend data om innsamling

De snu () metoden brukes til å lage nøkkelen til verdien og verdien til nøkkelen til samlingen. Legg til følgende kode i CollectionController for å sjekke funksjonen til snu () metode. En samling på tre elementer er definert i koden. De snu () metoden brukes på samlingen og utdataene fra snu () metoden skrives ut ved hjelp av dd () metode.

offentlig funksjon flip_data ()
// Erklær samlingen
$ produkter = samle (['name' => 'Samsung A40', 'brand' => 'Samsung', 'price' => '$ 300']);
// dump det variable innholdet i nettleseren
dd ($ produkter-> flip ());

Legg til følgende rute i ruter \ web.php filen for å ringe flip_data ().

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

Skriv inn følgende URL i nettleseren for å sjekke utdataene.

http: // localhost: 8000 / flip_collection

Følgende utdata vises etter at URL har kjørt.

Hent samlingen

De få() metoden brukes til å lese verdien av en bestemt nøkkel fra samlingen. Legg til følgende kode i CollectionController. Verdien av 'Navn' nøkkelen blir hentet i koden ved å bruke få() metode.

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

Legg til følgende rute i ruter \ web.php filen for å ringe hente_data ().

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

Skriv inn følgende URL i nettleseren for å sjekke utdataene.

http: // localhost: 8000 / read_collection

Følgende utdata vises etter at URL har kjørt.

Gruppesamlingsdata

De gruppe av() metoden brukes til å lage en ny samling fra en annen samling ved å gruppere basert på den spesielle nøkkelverdien. Legg til følgende kode i CollectionController. De gruppe av() metoden brukes her for å returnere en ny samling ved å gruppere verdiene basert på 'Apr'nøkkel.

offentlig funksjon gruppedata()

public function group_data ()
$ salg = samle inn ([
['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'));

Legg til følgende rute i ruter \ web.php filen for å ringe gruppedata ().

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

Skriv inn følgende URL i nettleseren for å sjekke utdataene.

http: // localhost: 8000 / group_collection

Følgende utdata vises etter at URL har kjørt.

Kombiner innsamlingsdata

De implodere () metoden brukes til å kombinere bestemte nøkkelverdier fra samlingen. Legg til følgende kode i CollectionController. De implodere () metoden brukes her for å kombinere verdiene til Navn nøkkelen til samlingen med plass.

offentlig funksjon join_data ()
// Erklære en samling
$ kunde = samle ([['id' => '894673', 'name' => 'Rahman', 'email' => '[e-postbeskyttet]'],
['id' => '454886', 'name' => 'Janifer', 'email' => '[e-postbeskyttet]'],
['id' => '306007', 'name' => 'Micheal', 'email' => '[e-postbeskyttet]']]);
// Kombiner og skriv ut verdien
dd ($ kunde-> implode ('navn', "));

Legg til følgende rute i ruter \ web.php filen for å ringe join_data ().

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

Skriv inn følgende URL i nettleseren for å sjekke utdataene.

http: // localhost: 8000 / join_collection

Følgende utdata vises etter at URL har kjørt.

Les samlingstaster

De nøkler () metoden brukes til å lage en ny samling med alle nøklene til en annen samling. Legg til følgende kode i CollectionController. Samlingen definert i koden inneholder forskjellige typer data som elementer, for eksempel verdien med numerisk indeks, verdien med nøkkelen og en annen matrise.

offentlig funksjon lesetaster ()
// Erklære en samling
$ mixdata = samle ([
['nettsted' => 'google.no ',' type '=>' søkemotor '],' språk '=>' PHP ',
1234, 'name' => 'Fahmida', 'game' => 'PUBG', 'color' => 'blue']);
// Skriv ut den nye samlingen generert ved hjelp av nøkler () -metoden
dd ($ mixdata-> nøkler ());

Legg til følgende rute i ruter \ web.php filen for å ringe read_keys ().

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

Skriv inn følgende URL i nettleseren for å sjekke utdataene.

http: // localhost: 8000 / key_collection

Følgende utdata vises etter at URL har kjørt.

Konklusjon

Laravel-samlingen lar deg gjøre mange forskjellige typer oppgaver med data, som PHP-arrays. Noen nyttige metoder for Laravel Collection blir forklart i denne veiledningen ved å bruke veldig enkel kode. Eloquent ORM er en annen bruk av samlingen i Laravel som ikke er dekket i denne opplæringen. En viktig begrensning i samlingsklassen er at den genererer en ny samling hver gang en metode kalles fordi den ikke er mutbar. Etter å ha lest denne veiledningen, bør leseren nå kjenne til noen grunnleggende bruksområder for Laravel-samlingen.

Topp 5 spillfangstkort
Vi har alle sett og elsket streaming av spill på YouTube. PewDiePie, Jakesepticye og Markiplier er bare noen av de beste spillerne som har tjent milli...
Hvordan utvikle et spill på Linux
For et tiår siden ville ikke mange Linux-brukere forutsi at deres favorittoperativsystem en dag ville være en populær spillplattform for kommersielle ...
Åpne kildeporter for kommersielle spillmotorer
Gratis, åpen kildekode og plattformspillmotorrekreasjoner kan brukes til å spille gamle så vel som noen av de ganske nylige spilletitlene. Denne artik...