Předpoklad
Před zahájením tohoto kurzu musíte vytvořit projekt Laravel. Musíte také mít základní znalosti o řadiči a směrování.
Vytvořte sbírku
Vytvořte řadič s názvem CollectionController a napište potřebný kód k vytvoření nové kolekce uvnitř řadiče. Spuštěním následujícího příkazu vytvořte řadič.
$ php artisan make: controller CollectionControllerKolekce můžete vytvořit pomocí třídy kolekce nebo metody collect (). Níže jsou uvedeny oba způsoby. Přidejte následující řádek v horní části CollectionController třída používat sbírka třída.
// Přidejte třídu kolekcepoužijte Illuminate \ Support \ Collection;
A. Vytvořit kolekci pomocí třídy
Vytvořte collection_class () metoda s následujícím kódem uvnitř CollectionConntroller. Zde je vytvořena kolekce čísel s třídou kolekce. Když se tato metoda volá, hodnoty proměnné kolekce se zobrazí v prohlížeči.
public function collection_class ()// Vytvořte novou kolekci pomocí třídy Collection
$ collection1 = nová kolekce ([67,34,89,56,23]);
// vypíše proměnný obsah v prohlížeči
dd ($ kolekce1);
Přidejte následující trasu do trasy \ web.php soubor pro volání collection_class ().
Route :: get ('collect1', '[email protected] _class');Chcete-li zkontrolovat výstup, zadejte do prohlížeče následující adresu URL.
http: // localhost: 8000 / collect1
Po spuštění adresy URL se zobrazí následující výstup. Zde je vytištěno pět čísel sbírky.
B. Vytvořte kolekci pomocí metody
Kolekce může být také vytvořena pomocí sbírat() metoda. Přidejte následující collect_method () uvnitř CollectionController vytvořit kolekci řetězců pomocí sbírat() metoda. Při volání této metody se hodnoty proměnné kolekce zobrazí v prohlížeči jako dříve.
public function collect_method ()// Vytvořte novou kolekci pomocí metody collect
$ collection2 = collect (["Dobrý", "Lepší", "Nejlepší"]);
// vypíše proměnný obsah v prohlížeči
dd ($ collection2);
Přidejte následující trasu do trasy \ web.php soubor pro volání collect_method ().
Route :: get ('collect2', '[email protected] _method');Chcete-li zkontrolovat výstup, zadejte do prohlížeče následující adresu URL.
http: // localhost: 8000 / collect2
Po spuštění adresy URL se zobrazí následující výstup. Zde jsou vytištěny tři řetězcové hodnoty kolekce.
Hledání dat ve sběru
Data lze z kolekce prohledávat několika způsoby. Přidejte následující kód dovnitř CollectionController. V kódu jsou zobrazeny dva typy vyhledávání. Nejprve je definována kolekce zákazníků a obsahuje () metoda se používá k vyhledání jmenovaného zákazníka „Janifer.'' Dále je definována kolekce vícerozměrného pole a kde() metoda se používá pro dva typy vyhledávání v kolekci. První kde() metoda se používá k vyhledávání informací, kde ID klíč obsahuje hodnotu „011176645.'' Druhý kde() metoda se používá k hledání informací, kde známky z CSE409 je 88.
veřejná funkce search_data ()// Deklarovat kolekci
$ customer = collect ([['' ''>> 894673 ',' name '=>' Rahman ',' email '=>' [chráněn e-mailem ''],
['id' => '454886', 'name' => 'Janifer', 'email' => '[chráněn e-mailem' '],
['id' => '306007', 'name' => 'Micheal', 'email' => '[e-mail chráněn]']]);
// Hledání pomocí metody contains
if ($ customer-> contains ('name', 'Janifer'))
echo "Janifer existuje v seznamu zákazníků.
";
// Deklarovat další kolekci
$ mark = sbírat ([
['ID' => '011176644', 'známky' => ['CSE401' => 87, 'CSE409' => 88]],
['ID' => '011176645', 'známky' => ['CSE402' => 69, 'CSE409' => 75]],
]);
// Hledání pomocí metody where
echo $ marks-> where ('ID', '011176645')."
";
echo $ mark-> kde ('značky.CSE409 ', 88);
Přidejte následující trasu do trasy \ web.php soubor pro volání search_data ().
Route :: get ('src_collection', '[email protected] _data');Chcete-li zkontrolovat výstup, zadejte do prohlížeče následující adresu URL.
http: // localhost: 8000 / src_collection
Po spuštění adresy URL se zobrazí následující výstup.
Filtrovat data sběru
The filtr() metoda se používá k filtrování dat ze sbírky. Přidejte následující kód do CollectionController. Sbírka produkty je definován v kódu, který obsahuje název produktu a cenu. The filtr() metoda se používá k filtrování dat ze sběru, z nichž cena hodnota je větší než 4000. Kolekce filtrovaných dat je převedena do pole a vytištěna pomocí pro smyčka.
veřejná funkce filter_data ()// Deklarovat kolekci
$ products = collect ([
['product' => 'HDD', 'price' => 6000],
['product' => 'Myš', 'cena' => 500],
['product' => 'Monitor', 'price' => 5000],
['product' => 'Printer', 'price' => 4000],
]);
// Vytvořte další seznam po filtrování dat na základě hodnoty ceny
$ filter_price = $ products-> filter (function ($ item)
vrátit data_get ($ item, 'price')> 4000;
);
// Načíst všechna data jako pole z nové kolekce
$ filtrováno = $ filtr_cena-> vše ();
// Iterace hodnot pole pomocí smyčky
foreach ($ filtrováno jako $ hodnota)
echo "Název:".$ hodnota ['produkt'].„,“."Cena: ".$ hodnota ['cena']."
";
Přidejte následující trasu do trasy \ web.php soubor pro volání filter_data ().
Route :: get ('filter_collection', '[email protected] _data');Chcete-li zkontrolovat výstup, zadejte do prohlížeče následující adresu URL.
http: // localhost: 8000 / filter_collection
Po spuštění adresy URL se zobrazí následující výstup.
Třídit data kolekce
Rozličný třídit v Laravelu existují metody pro třídění dat sběru. Přidejte následující kód do CollectionController. V kódu je definována sbírka knih. The seřazeno podle() metoda se používá k řazení dat sběru na základě klíče 'autor.„Poté se hodnoty proměnné tříděné kolekce vytisknou v prohlížeči.
veřejná funkce sort_data ()// Deklarovat kolekci
$ books = collect ([
['name' => 'Python Cookbook: Recepty na zvládnutí Pythonu 3',
'author' => 'David Beazley'],
['name' => 'Naučte se Python za 1 den: Kompletní průvodce Pythonem s příklady',
'author' => 'Krishna Rungta'],
['name' => 'Programování v Pythonu: Úvod do informatiky',
'author' => 'John M. Zelle '],
['name' => 'Python Pocket Reference 5ed: Python in Your Pocket',
'author' => 'Mark Lutz']
]);
// Seřaďte data sbírky podle jména autora
$ sortBook = $ books-> sortBy ('author');
// vypíše proměnný obsah v prohlížeči
dd ($ tříděné knihy-> hodnoty () -> toArray ());
Přidejte následující trasu do trasy \ web.php soubor pro volání sort_data ().
Route :: get ('sort_collection', '[email protected] _data');Chcete-li zkontrolovat výstup, zadejte do prohlížeče následující adresu URL.
http: // localhost: 8000 / sort_collection
Po spuštění adresy URL se zobrazí následující výstup.
Data shromažďování řezů
Konkrétní část lze vyjmout ze sbírky pomocí vzít() metoda. Přidejte následující kód do CollectionController. The vzít() metoda se v kódu používá k vytvoření nového seznamu vyjmutím prvních tří položek z kolekce. Dále pro smyčka vytiskne hodnoty nové kolekce.
veřejná funkce slice_data ()// Deklarovat kolekci
$ languages = collect (['PHP', 'Bash', 'Python', 'Java', 'C #', 'C ++']);
// Načíst první tři data
$ slice = $ languages-> take (3);
// Iterační hodnoty kolekce
foreach ($ slice jako $ value)
echo $ value."";
Přidejte následující trasu do trasy \ web.php soubor pro volání slice_data ().
Route :: get ('slice_collection', '[email protected] _data');Chcete-li zkontrolovat výstup, zadejte do prohlížeče následující adresu URL.
http: // localhost: 8000 / slice_collection
Po spuštění adresy URL se zobrazí následující výstup.
Najděte rozdíl mezi dvěma kolekcemi
The diff () metoda se používá k vyhledání hodnot z první kolekce, které ve druhé kolekci neexistují. Přidejte následující kód do CollectionController. Zde jsou definovány dvě proměnné kolekce. The diff () metoda generuje novou kolekci po načtení hodnot z seznam1 které neexistují v seznam2.
public function find_diff ()// Deklarujte dvě kolekce
$ list1 = collect (['Notebook', 'Pen', 'Sharpner', 'Scale', 'Pencil']);
$ list2 = collect (['Pencil', 'Color Pencil', 'Color Paper', 'Pen']);
// Zjistit, která data existují v seznamu1, ale ne v seznamu2
$ newList = $ list1-> diff ($ list2);
// vypíše proměnný obsah v prohlížeči
dd ($ newList);
Přidejte následující trasu do trasy \ web.php soubor pro volání find_diff ().
Route :: get ('diff_collection', '[email protected] _diff');Chcete-li zkontrolovat výstup, zadejte do prohlížeče následující adresu URL.
http: // localhost: 8000 / diff_collection
Po spuštění adresy URL se zobrazí následující výstup.
Překlopit data sběru
The převrátit () metoda se používá k vytvoření klíče k hodnotě a hodnoty ke klíči kolekce. Přidejte následující kód do CollectionController a zkontrolujte funkci převrátit () metoda. V kódu je definována kolekce tří položek. The převrátit () metoda se použije na sběr a výstup souboru převrátit () metoda je vytištěna pomocí dd () metoda.
veřejná funkce flip_data ()// Deklarovat kolekci
$ products = collect (['name' => 'Samsung A40', 'brand' => 'Samsung', 'price' => '$ 300']);
// vypíše proměnný obsah v prohlížeči
dd ($ products-> flip ());
Přidejte následující trasu do trasy \ web.php soubor pro volání flip_data ().
Route :: get ('flip_collection', '[email protected] _data');Chcete-li zkontrolovat výstup, zadejte do prohlížeče následující adresu URL.
http: // localhost: 8000 / flip_collection
Po spuštění adresy URL se zobrazí následující výstup.
Načíst sbírku
The dostat() metoda se používá ke čtení hodnoty konkrétního klíče z kolekce. Přidejte následující kód do CollectionController. Hodnota „název' klíč se načte v kódu pomocí dostat() metoda.
Veřejná funkce retrieve_data ()// Deklarovat kolekci
$ products = collect (['name' => 'Samsung A40', 'brand' => 'Samsung', 'price' => '$ 300']);
dd ($ products-> get ('name'));
Přidejte následující trasu do trasy \ web.php soubor pro volání retrieve_data ().
Route :: get ('read_collection', '[email protected] _data');Chcete-li zkontrolovat výstup, zadejte do prohlížeče následující adresu URL.
http: // localhost: 8000 / read_collection
Po spuštění adresy URL se zobrazí následující výstup.
Údaje o skupinovém sběru
The skupina vytvořená() metoda se používá k vytvoření nové kolekce z jiné kolekce seskupením na základě konkrétní hodnoty klíče. Přidejte následující kód dovnitř CollectionController. The skupina vytvořená() metoda se zde používá k vrácení nové kolekce seskupením hodnot na základě 'Dubnaklíč.
veřejná funkce group_data()
public function group_data ()$ sales = collect ([
['Jan' => 100 000],
['Mar' => 500 000],
['Dub' => 600 000],
['Jan' => 450000],
['Jun' => 230000],
['Aug' => 600 000],
['Září' => 789333],
['Jul' => 452000],
['Jan' => 700000],
['Apr' => 490000],
['Jun' => 670000],
['Dub' => 560000]
]);
dd ($ sales-> groupBy ('Apr'));
Přidejte následující trasu do trasy \ web.php soubor pro volání group_data ().
Route :: get ('group_collection', '[email protected] _data');Chcete-li zkontrolovat výstup, zadejte do prohlížeče následující adresu URL.
http: // localhost: 8000 / group_collection
Po spuštění adresy URL se zobrazí následující výstup.
Zkombinujte data sběru
The implode () metoda se používá ke kombinaci konkrétních klíčových hodnot z kolekce. Přidejte následující kód dovnitř CollectionController. The implode () Zde se používá metoda ke kombinování hodnot název klíč kolekce s prostorem.
veřejná funkce join_data ()// Deklarovat kolekci
$ customer = collect ([['' ''>> 894673 ',' name '=>' Rahman ',' email '=>' [chráněn e-mailem ''],
['id' => '454886', 'name' => 'Janifer', 'email' => '[chráněn e-mailem' '],
['id' => '306007', 'name' => 'Micheal', 'email' => '[e-mail chráněn]']]);
// Zkombinujte a vytiskněte hodnotu
dd ($ customer-> implode ('name', "));
Přidejte následující trasu do trasy \ web.php soubor pro volání join_data ().
Route :: get ('join_collection', '[email protected] _data');Chcete-li zkontrolovat výstup, zadejte do prohlížeče následující adresu URL.
http: // localhost: 8000 / join_collection
Po spuštění adresy URL se zobrazí následující výstup.
Přečtěte si klíče pro sběr
The klávesy () metoda se používá k vytvoření nové kolekce se všemi klíči jiné kolekce. Přidejte následující kód dovnitř CollectionController. Kolekce definovaná v kódu obsahuje různé typy dat jako položky, například hodnotu s číselným indexem, hodnotu s klíčem a další pole.
public function read_keys ()// Deklarovat kolekci
$ mixdata = sbírat ([
['website' => 'google.com ',' type '=>' vyhledávač '],' language '=>' PHP ',
1234, 'name' => 'Fahmida', 'game' => 'PUBG', 'color' => 'blue']);
// Vytiskne novou kolekci generovanou metodou keys ()
dd ($ mixdata-> keys ());
Přidejte následující trasu do trasy \ web.php soubor pro volání read_keys ().
Route :: get ('key_collection', '[email protected] _keys');Chcete-li zkontrolovat výstup, zadejte do prohlížeče následující adresu URL.
http: // localhost: 8000 / key_collection
Po spuštění adresy URL se zobrazí následující výstup.
Závěr
Sbírka laravel umožňuje provádět s daty mnoho různých typů úkolů, například pole PHP. Některé užitečné metody Laravel Collection jsou vysvětleny v tomto tutoriálu pomocí velmi jednoduchého kódu. Eloquent ORM je další použití kolekce v Laravelu, které není popsáno v tomto kurzu. Jedno hlavní omezení třídy kolekce je, že generuje novou kolekci pokaždé, když se volá metoda, protože není měnitelná. Po přečtení tohoto tutoriálu by čtenář měl nyní znát některá základní použití kolekce Laravel.