laravel

Laravel Collection Tutorial

Laravel Collection Tutorial
Laravelsamlingen är en användbar funktion i Laravel-ramverket. En samling fungerar som en PHP-array, men det är bekvämare. Samlingsklassen finns i Illuminate \ Support \ Collection plats. En samling låter dig skapa en kedja av metoder för att kartlägga eller minska matriser. Det kan inte ändras och en ny samling återkommer när insamlingsmetoden anropas. Det är ett API-omslag för PHP-arrayfunktioner och en samling kan genereras från en array. Denna handledning visar hur du skapar och använder en samling i alla Laravel-projekt.

Nödvändig förutsättning

Du måste skapa ett Laravel-projekt innan du börjar denna handledning. Du måste också ha en grundläggande kunskap om styrenhet och routing.

Skapa en samling

Skapa den styrenhet som heter CollectionController och skriv den nödvändiga koden för att skapa en ny samling inuti styrenheten. Kör följande kommando för att skapa styrenheten.

$ php hantverkare: controller CollectionController

Du kan skapa en samling med en samlingsklass eller metoden collect (). Båda sätten visas nedan. Lägg till följande rad högst upp på CollectionController klass för att använda samling klass.

// Lägg till insamlingsklassen
använd Illuminate \ Support \ Collection;

A. Skapa samling med klass

Skapa collection_class () metoden med följande kod inuti CollectionConntroller. Här skapas en samling nummer med en samlingsklass. När den här metoden anropas visas värdena på samlingsvariabeln i webbläsaren.

public function collection_class ()
// Skapa en ny samling med hjälp av samlingsklassen
$ collection1 = ny samling ([67,34,89,56,23]);
// dumpa det variabla innehållet i webbläsaren
dd ($ collection1);

Lägg till följande rutt i rutter \ webb.php fil för att ringa collection_class ().

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

Ange följande URL i webbläsaren för att kontrollera utdata.

http: // localhost: 8000 / collect1

Följande utdata visas efter att URL: n har körts. Samlingens fem nummer skrivs ut här.

B. Skapa samling med metod

En samling kan också skapas med hjälp av samla() metod. Lägg till följande samla_metod () inuti CollectionController för att skapa en samling strängar med hjälp av samla() metod. När denna metod anropas visas värdena på samlingsvariabeln i webbläsaren, som tidigare.

offentlig funktion collect_method ()
// Skapa en ny samling med samlingsmetoden
$ collection2 = samla (["Bra", "Bättre", "Bäst"]);
// dumpa det variabla innehållet i webbläsaren
dd ($ collection2);

Lägg till följande rutt i rutter \ webb.php fil för att ringa samla_metod ().

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

Ange följande URL i webbläsaren för att kontrollera utdata.

http: // localhost: 8000 / collect2

Följande utdata visas efter att URL: n har körts. De tre strängvärdena i samlingen skrivs ut här.

Sökdata i samlingen

Data kan sökas från samlingen på flera sätt. Lägg till följande kod inuti CollectionController. Två typer av sökningar visas i koden. Först definieras en samling kunder och innehåller () metoden används för att söka efter den kund som heter 'Janifer.'' Därefter definieras en samling av den flerdimensionella matrisen och var() metoden används för två typer av sökningar i samlingen. Den första var() metoden används för att söka information, där ID nyckeln innehåller värdet '011176645.'' Den andra var() metoden används för att söka efter information där märken av CSE409 är 88.

public function search_data ()

// Förklara en samling
$ customer = collect ([['id' => '894673', 'name' => 'Rahman', 'email' => '[email protected]'],
['id' => '454886', 'name' => 'Janifer', 'email' => '[email protected]'],
['id' => '306007', 'name' => 'Micheal', 'email' => '[email protected]']]);
// Sök med innehåller metoden
om ($ kund-> innehåller ('namn', 'Janifer'))

eko "Janifer finns i kundlistan.
";

// Förklara en annan samling
$ marks = samla ([
['ID' => '011176644', 'marks' => ['CSE401' => 87, 'CSE409' => 88]],
['ID' => '011176645', 'marks' => ['CSE402' => 69, 'CSE409' => 75]],
]);
// Sök med var-metoden
echo $ marks-> where ('ID', '011176645')."
";
echo $ marks-> där ('markerar.CSE409 ', 88);

Lägg till följande rutt i rutter \ webb.php fil för att ringa sökdata ().

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

Ange följande URL i webbläsaren för att kontrollera utdata.

http: // localhost: 8000 / src_collection

Följande utdata visas efter att URL: n har körts.

Filtrera insamlingsdata

De filtrera() metoden används för att filtrera data från samlingen. Lägg till följande kod i CollectionController. En samling av Produkter definieras i koden som innehåller produktnamn och pris. De filtrera() metoden används för att filtrera data från vilken insamling pris värdet är större än 4000. Insamlingen av filtrerade data omvandlas till en matris och skrivs ut av för slinga.

offentlig funktion filter_data ()

// Förklara en samling
$ produkter = samla ([
['product' => 'HDD', 'price' => 6000],
['product' => 'Mus', 'price' => 500],
['product' => 'Monitor', 'price' => 5000],
['produkt' => 'Skrivare', 'pris' => 4000],
]);
// Skapa en annan lista efter filtrering av data baserat på prisvärde
$ filter_price = $ products-> filter (funktion ($ item)
returnera data_get ($ artikel, 'pris')> 4000;
);
// Läs all data som array från den nya samlingen
$ filtered = $ filter_price-> all ();
// Iterera matrisvärdena med hjälp av loop
foreach ($ filtrerat som $ värde)

eko "Namn:".$ värde ['produkt'].","."Pris: ".$ värde ['pris']."
";

Lägg till följande rutt i rutter \ webb.php fil för att ringa filter_data ().

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

Ange följande URL i webbläsaren för att kontrollera utdata.

http: // localhost: 8000 / filter_collection

Följande utdata visas efter att URL: n har körts.

Sortera samlingsdata

Olika sortera metoder finns i Laravel för att sortera insamlingsdata. Lägg till följande kod i CollectionController. En samling böcker definieras i koden. De sortera efter() metoden används för att sortera insamlingsdata baserat på nyckeln 'författare.'Därefter skrivs värdena på den sorterade samlingsvariabeln i webbläsaren.

offentlig funktion sort_data ()
// Förklara en samling
$ books = samla ([
['name' => 'Python Cookbook: Recept for Mastering Python 3',
'author' => 'David Beazley'],
['name' => 'Lär dig Python på en dag: Komplett Python-guide med exempel',
'author' => 'Krishna Rungta'],
['name' => 'Python-programmering: En introduktion till datavetenskap',
'author' => 'John M. Zelle '],
['name' => 'Python Pocket Reference 5ed: Python in Your Pocket',
'author' => 'Mark Lutz']
]);
// Sortera samlingsdata baserat på författarnamn
$ sortedBook = $ books-> sortBy ('författare');
// dumpa det variabla innehållet i webbläsaren
dd ($ sortedBook-> values ​​() -> toArray ());

Lägg till följande rutt i rutter \ webb.php fil för att ringa sort_data ().

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

Ange följande URL i webbläsaren för att kontrollera utdata.

http: // localhost: 8000 / sort_collection

Följande utdata visas efter att URL: n har körts.

Slice Collection Data

En viss del kan klippas ur samlingen med hjälp av ta() metod. Lägg till följande kod i CollectionController. De ta() metoden används i koden för att skapa en ny lista genom att klippa ut de tre första objekten från samlingen. Nästa, den för loop skriver ut värdena för den nya samlingen.

offentlig funktion slice_data ()
// Förklara en samling
$ språk = samla (['PHP', 'Bash', 'Python', 'Java', 'C #', 'C ++']);
// Återställ de tre första uppgifterna
$ slice = $ språk-> ta (3);
// Iterera samlingsvärden
foreach ($ skiva som $ värde)

echo $ värde."";

Lägg till följande rutt i rutter \ webb.php fil för att ringa slice_data ().

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

Ange följande URL i webbläsaren för att kontrollera utdata.

http: // localhost: 8000 / slice_collection

Följande utdata visas efter att URL: n har körts.

Hitta skillnaden mellan två samlingar

De diff () metoden används för att hitta värden från den första samlingen som inte finns i den andra samlingen. Lägg till följande kod i CollectionController. Två samlingsvariabler definieras här. De diff () metoden genererar en ny samling efter att värdena hämtats från lista1 som inte finns i lista2.

offentlig funktion find_diff ()
// Förklara två samlingar
$ list1 = samla (['Notebook', 'Pen', 'Sharpner', 'Scale', 'Pencil']);
$ list2 = samla (['Pencil', 'Color Pencil', 'Color Paper', 'Pen']);
// Hitta vilka data som finns i lista1 men inte i lista2
$ newList = $ list1-> diff ($ list2);
// dumpa det variabla innehållet i webbläsaren
dd ($ newList);

Lägg till följande rutt i rutter \ webb.php fil för att ringa find_diff ().

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

Ange följande URL i webbläsaren för att kontrollera utdata.

http: // localhost: 8000 / diff_collection

Följande utdata visas efter att URL: n har körts.

Vänd samlingsdata

De flip() metoden används för att göra nyckeln till värdet och värdet till samlingens nyckel. Lägg till följande kod i CollectionController för att kontrollera funktionen för flip() metod. En samling med tre objekt definieras i koden. De flip() metoden tillämpas på insamling och produktion av flip() metoden skrivs ut med dd () metod.

offentlig funktion flip_data ()
// Förklara samlingen
$ produkter = samla (['name' => 'Samsung A40', 'brand' => 'Samsung', 'price' => '$ 300']);
// dumpa det variabla innehållet i webbläsaren
dd ($ products-> flip ());

Lägg till följande rutt i rutter \ webb.php fil för att ringa flip_data ().

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

Ange följande URL i webbläsaren för att kontrollera utdata.

http: // localhost: 8000 / flip_collection

Följande utdata visas efter att URL: n har körts.

Hämta samlingen

De skaffa sig() metoden används för att läsa värdet på en viss nyckel från samlingen. Lägg till följande kod i CollectionController. Värdet av 'namn' nyckel hämtas i koden med hjälp av skaffa sig() metod.

Offentlig funktion retrieve_data ()
// Förklara samlingen
$ produkter = samla (['name' => 'Samsung A40', 'brand' => 'Samsung', 'price' => '$ 300']);
dd ($ products-> get ('name'));

Lägg till följande rutt i rutter \ webb.php fil för att ringa hämta_data ().

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

Ange följande URL i webbläsaren för att kontrollera utdata.

http: // localhost: 8000 / read_collection

Följande utdata visas efter att URL: n har körts.

Gruppinsamlingsdata

De Grupp av() metoden används för att skapa en ny samling från en annan samling genom att gruppera baserat på det specifika nyckelvärdet. Lägg till följande kod inuti CollectionController. De Grupp av() metoden används här för att returnera en ny samling genom att gruppera värdena baserat på 'Apr-tangenten.

offentlig funktion gruppdata()

public function group_data ()
$ försäljning = samla ([
['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'));

Lägg till följande rutt i rutter \ webb.php fil för att ringa gruppdata ().

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

Ange följande URL i webbläsaren för att kontrollera utdata.

http: // localhost: 8000 / group_collection

Följande utdata visas efter att URL: n har körts.

Kombinera insamlingsdata

De implodera() metoden används för att kombinera vissa nyckelvärden från samlingen. Lägg till följande kod inuti CollectionController. De implodera() Metoden används här för att kombinera värdena för namn nyckeln till samlingen med utrymme.

offentlig funktion join_data ()
// Förklara en samling
$ customer = collect ([['id' => '894673', 'name' => 'Rahman', 'email' => '[email protected]'],
['id' => '454886', 'name' => 'Janifer', 'email' => '[email protected]'],
['id' => '306007', 'name' => 'Micheal', 'email' => '[email protected]']]);
// Kombinera och skriv ut värdet
dd ($ customer-> implode ('name', "));

Lägg till följande rutt i rutter \ webb.php fil för att ringa join_data ().

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

Ange följande URL i webbläsaren för att kontrollera utdata.

http: // localhost: 8000 / join_collection

Följande utdata visas efter att URL: n har körts.

Läs samlingsnycklar

De nycklar () metoden används för att skapa en ny samling med alla nycklarna till en annan samling. Lägg till följande kod inuti CollectionController. Samlingen som definieras i koden innehåller olika typer av data som objekt, till exempel värdet med numeriskt index, värdet med nyckeln och en annan matris.

public function read_keys ()
// Förklara en samling
$ mixdata = samla ([
['webbplats' => 'google.com ',' type '=>' sökmotor '],' språk '=>' PHP ',
1234, 'name' => 'Fahmida', 'game' => 'PUBG', 'color' => 'blue']);
// Skriv ut den nya samlingen som genereras med nycklar () -metoden
dd ($ mixdata-> tangenter ());

Lägg till följande rutt i rutter \ webb.php fil för att ringa läsnycklar ().

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

Ange följande URL i webbläsaren för att kontrollera utdata.

http: // localhost: 8000 / key_collection

Följande utdata visas efter att URL: n har körts.

Slutsats

Med Laravel-samlingen kan du göra många olika typer av uppgifter med data, som PHP-matriser. Några användbara metoder för Laravel Collection förklaras i denna handledning med mycket enkel kod. Eloquent ORM är en annan användning av samlingen i Laravel som inte beskrivs i denna handledning. En viktig begränsning av insamlingsklassen är att den genererar en ny samling varje gång en metod anropas eftersom den inte kan ändras. Efter att ha läst denna handledning bör läsaren nu känna till några grundläggande användningsområden för Laravel-samlingen.

Gratis och öppen källkodsmotorer för utveckling av Linux-spel
Den här artikeln kommer att täcka en lista över gratis motorer med öppen källkod som kan användas för att utveckla 2D- och 3D-spel på Linux. Det finns...
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider är det tolfte tillskottet till Tomb Raider-serien - en action-äventyrsspelfranchise skapad av Eidos Montreal. Spelet mottogs...
Hur man förbättrar FPS i Linux?
FPS står för Bildrutor per sekund. FPS: s uppgift är att mäta bildfrekvensen i videouppspelningar eller spelprestanda. Med enkla ord betecknas antalet...