Laravel Collection Tutorial

Laravel Collection Tutorial
Laravel Collection er et nyttig trekk ved Laravel Framework. En samling fungerer som en PHP -matrise, men den er mer praktisk. Samlingsklassen ligger i Illuminate \ Support \ Collection plassering. En samling lar deg lage en kjede med metoder for å kartlegge eller redusere matriser. Det kan ikke endres, og en ny samling kommer tilbake når innsamlingsmetoden heter. Det er en API -innpakning for PHP -matrisefunksjoner, og en samling kan genereres fra en matrise. Denne opplæringen viser deg hvordan du lager og bruker en samling i et hvilket som helst 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 Artisan Make: Controller CollectionController

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

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

EN. Lag samling ved hjelp av klasse

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

public Function Collection_Class ()
// Lag en ny samling ved hjelp av samlingsklasse
$ 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 fil for å ringe Collection_Class ().

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

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

http: // localhost: 8000/collect1

Følgende utgang vises etter å ha kjørt nettadressen. De fem tallene på samlingen er skrevet ut her.

B. Lag samling ved hjelp av metoden

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

offentlig funksjon Collect_method ()
// Lag en ny samling ved hjelp av Collect -metoden
$ collection2 = samle (["god", "bedre", "best"]);
// Dump det variable innholdet i nettleseren
DD ($ Collection2);

Legg til følgende rute i Ruter \ Web.PHP fil for å ringe Collect_method ().

Rute :: get ('Collect2', 'CollectionController@Collect_method');

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

http: // localhost: 8000/collect2

Følgende utgang vises etter å ha kjørt nettadressen. De tre strengverdiene for samlingen er skrevet ut her.

Søkedata i innsamling

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

offentlig funksjon Search_data ()

// erklære en samling
$ kunde = samle ([['id' => '894673', 'navn' => 'Rahman', 'e -post' => '[email protected] '],
['id' => '454886', 'navn' => 'Janifer', 'e -post' => '[email protected] '],
['Id' => '306007', 'Navn' => 'Micheal', 'E -post' => '[email protected] ']]);
// Søk ved bruk av inneholder metode
if ($ customer-> inneholder ('navn', 'Janifer'))

Echo "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 bruk av hvor metoden
Echo $ Marks-> Where ('Id', '0111766645').""
";
ekko $ marks-> hvor ('merker.CSE409 ', 88);

Legg til følgende rute i Ruter \ Web.PHP fil for å ringe search_data ().

Rute :: get ('src_collection', 'collectioncontroller@search_data');

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

http: // localhost: 8000/src_collection

Følgende utgang vises etter å ha kjørt nettadressen.

Filterinnsamlingsdata

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 trykt av til Løkke.

offentlig funksjon filter_data ()

// erklære en samling
$ produkter = samle ([
['Produkt' => 'HDD', 'Price' => 6000],
['Produkt' => 'Mus', 'Pris' => 500],
['Produkt' => 'Monitor', 'Pris' => 5000],
['Produkt' => 'skriver', 'pris' => 4000],
]);
// Opprett en annen liste etter filtrering av dataene basert på prisverdi
$ filter_price = $ produkter-> filter (funksjon ($ element)
Return Data_get ($ vare, 'pris')> 4000;
);
// Les alle data som matrise fra den nye samlingen
$ filtrert = $ filter_price-> all ();
// iterere matriseverdiene ved hjelp av loop
Foreach ($ filtrert som $ verdi)

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

Legg til følgende rute i Ruter \ Web.PHP fil for å ringe filter_data ().

Rute :: Get ('Filter_Collection', 'CollectionController@Filter_Data');

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

http: // localhost: 8000/filter_collection

Følgende utgang vises etter å ha kjørt nettadressen.

Sorter innsamlingsdata

Diverse sortere Det finnes metoder i Laravel for å sortere innsamlingsdata. Legg til følgende kode i CollectionController. En samling av bøker er definert i koden. De Sorter etter() Metoden brukes til å sortere innsamlingsdata basert på nøkkelen 'forfatter."Deretter skrives verdiene til den sorterte samlingsvariabelen i nettleseren.

offentlig funksjon sort_data ()
// erklære en samling
$ bøker = samle ([
['Navn' => 'Python Cookbook: Oppskrifter for å mestre Python 3',
'Forfatter' => 'David Beazley'],
['Navn' => 'Lær Python på 1 dag: Komplett Python Guide med eksempler',
'Forfatter' => 'Krishna Rungta'],
['Navn' => 'Python -programmering: En introduksjon til informatikk',
'Forfatter' => 'John M. Zelle '],
['Navn' => 'Python Pocket Reference 5ed: Python in Your Pocket',
'Forfatter' => 'Mark Lutz']
]);
// Sorter innsamlingsdataene basert på forfatternavn
$ sortedbook = $ bøker-> sortby ('forfatter');
// Dump det variable innholdet i nettleseren
dd ($ sortedbook-> verdier ()-> toarray ());

Legg til følgende rute i Ruter \ Web.PHP fil for å ringe sort_data ().

Rute :: get ('sort_collection', 'collectioncontroller@sort_data');

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

http: // localhost: 8000/sort_collection

Følgende utgang vises etter å ha kjørt nettadressen.

Skive innsamlingsdata

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 å opprette en ny liste ved å kutte de tre første elementene fra samlingen. Neste, The til Loop skriver ut verdiene til den nye samlingen.

offentlig funksjon SITE_DATA ()
// erklære en samling
$ språk = samle (['php', 'bash', 'python', 'java', 'c#', 'c ++']);
// Løsne de tre første dataene
$ skive = $ språk-> ta (3);
// iteratering av innsamlingsverdier
Foreach ($ skive som $ verdi)

ekko $ verdi."";

Legg til følgende rute i Ruter \ Web.PHP fil for å ringe skive_data ().

Rute :: Get ('Slice_Collection', 'CollectionController@Slice_Data');

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

http: // localhost: 8000/skive_collection

Følgende utgang vises etter å ha kjørt nettadressen.

Finn forskjellen mellom to samlinger

De Diff () Metoden brukes til å finne verdier fra den første samlingen som ikke eksisterer i den andre samlingen. Legg til følgende kode i CollectionController. To samlingsvariabler er definert her. De Diff () Metode genererer en ny samling etter å ha hentet verdiene fra Liste1 som ikke eksisterer i liste2.

offentlig funksjon find_diff ()
// erklære to samling
$ list1 = samle (['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 fil for å ringe find_diff ().

Rute :: get ('diff_collection', 'collectioncontroller@find_diff');

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

http: // localhost: 8000/diff_collection

Følgende utgang vises etter å ha kjørt nettadressen.

Flip innsamlingsdata

De Flip () Metoden brukes til å gjøre nøkkelen til verdien og verdien til nøkkelen til samlingen. Legg til følgende kode i CollectionController for å sjekke funksjonen til Flip () metode. En samling av tre elementer er definert i koden. De Flip () metoden brukes på samlingen og utgangen til Flip () metoden skrives ut ved å bruke dd () metode.

offentlig funksjon flip_data ()
// erklære samlingen
$ produkter = samle (['Navn' => 'Samsung A40', 'Brand' => 'Samsung', 'Price' => '$ 300']);
// Dump det variable innholdet i nettleseren
dd ($ produkter-> flip ());

Legg til følgende rute i Ruter \ Web.PHP fil for å ringe flip_data ().

Rute :: get ('flip_collection', 'collectioncontroller@flip_data');

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

http: // localhost: 8000/flip_collection

Følgende utgang vises etter å ha kjørt nettadressen.

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 hentes i koden ved å bruke få() metode.

Offentlig funksjon henting_data ()
// erklære samlingen
$ produkter = samle (['Navn' => 'Samsung A40', 'Brand' => 'Samsung', 'Price' => '$ 300']);
dd ($ produkter-> get ('name'));

Legg til følgende rute i Ruter \ Web.PHP fil for å ringe hente_data ().

Rute :: get ('read_collection', 'collectioncontroller@henting_data');

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

http: // localhost: 8000/read_collection

Følgende utgang vises etter å ha kjørt nettadressen.

Gruppesamlingsdata

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

offentlig funksjon group_data()

public Function Group_Data ()
$ salg = samle ([
['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 ($ Sales-> Groupby ('Apr'));

Legg til følgende rute i Ruter \ Web.PHP fil for å ringe gruppe_data ().

Rute :: get ('group_collection', 'collectioncontroller@group_data');

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

http: // localhost: 8000/group_collection

Følgende utgang vises etter å ha kjørt nettadressen.

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', 'navn' => 'Rahman', 'e -post' => '[email protected] '],
['id' => '454886', 'navn' => 'Janifer', 'e -post' => '[email protected] '],
['Id' => '306007', 'Navn' => 'Micheal', 'E -post' => '[email protected] ']]);
// kombinere og skrive ut verdien
dd ($ customer-> implode ('name', "));

Legg til følgende rute i Ruter \ Web.PHP fil for å ringe join_data ().

Rute :: get ('join_collection', 'collectioncontroller@join_data');

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

http: // localhost: 8000/join_collection

Følgende utgang vises etter å ha kjørt nettadressen.

Les samlingsnøkler

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økkel og en annen matrise.

offentlig funksjon read_keys ()
// erklære en samling
$ mixData = samle ([
['Nettsted' => 'Google.com ',' type '=>' søkemotor '],' språk '=>' php ',
1234, 'Navn' => 'Fahmida', 'Game' => 'PUBG', 'Color' => 'Blue']);
// Skriv ut den nye samlingen generert av Keys () -metoden
DD ($ mixData-> Keys ());

Legg til følgende rute i Ruter \ Web.PHP fil for å ringe read_keys ().

Rute :: Get ('Key_Collection', 'CollectionController@Read_Keys');

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

http: // localhost: 8000/key_collection

Følgende utgang vises etter å ha kjørt nettadressen.

Konklusjon

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