Samouczek kolekcji Laravel

Samouczek kolekcji Laravel
Kolekcja Laravel jest przydatną cechą frameworka Laravel. Kolekcja działa jak tablica PHP, ale jest wygodniejsza. Klasa kolekcji znajduje się w ILUMINE \ Wsparcie \ Collection Lokalizacja. Kolekcja umożliwia tworzenie łańcucha metod do mapowania lub zmniejszenia tablic. Nie jest zmienny, a nowa kolekcja powraca, gdy wywoływana jest metoda zbierania. Jest to opakowanie API dla funkcji tablicy PHP, a kolekcja można wygenerować z tablicy. Ten samouczek pokazuje, jak tworzyć i korzystać z kolekcji w dowolnym projekcie Laravel.

Warunek wstępny

Przed rozpoczęciem tego samouczka musisz utworzyć projekt Laravel. Musisz także mieć podstawową wiedzę na temat kontrolera i routingu.

Utwórz kolekcję

Utwórz nazwany kontroler CollectionController i napisz niezbędny kod, aby utworzyć nową kolekcję wewnątrz kontrolera. Uruchom następujące polecenie, aby utworzyć kontroler.

$ PHP Artisan Make: Controller Collectoller Controller

Możesz utworzyć kolekcję za pomocą klasy kolekcji lub metody kolekcji (). Oba sposoby są pokazane poniżej. Dodaj następującą linię u góry CollectionController klasa do użycia kolekcja klasa.

// Dodaj klasę kolekcji
Użyj Illuminate \ Support \ Collection;

A. Utwórz kolekcję za pomocą klasy

Utwórz Collection_class () metoda z następującym kodem wewnątrz CollectionConntroller. Tutaj zbiór liczb jest tworzony z klasą kolekcji. Po wywołaniu tej metody wartości zmiennej zbierania zostaną pokazane w przeglądarce.

Funkcja publiczna Collection_Class ()
// Utwórz nową kolekcję za pomocą klasy kolekcji
$ Collection1 = nowa kolekcja ([67,34,89,56,23]);
// Zrzuć zawartość zmiennej w przeglądarce
DD ($ Collection1);

Dodaj następującą trasę w trasy \ Web.php plik, aby zadzwonić Collection_class ().

Trasa :: „collect1”, „collectionController@collection_class”);

Wprowadź następujący adres URL w przeglądarce, aby sprawdzić wyjście.

http: // localhost: 8000/clect11

Następujące wyjście pojawią się po uruchomieniu adresu URL. Pięć liczby kolekcji jest drukowane tutaj.

B. Utwórz kolekcję za pomocą metody

Kolekcję można również utworzyć za pomocą zbierać() metoda. Dodaj następujące informacje collect_method () w środku CollectionController Aby utworzyć zbiór ciągów za pomocą zbierać() metoda. Po wywołaniu tej metody wartości zmiennej zbierania zostaną pokazane w przeglądarce, jak poprzednio.

Funkcja publiczna Collect_Method ()
// Utwórz nową kolekcję za pomocą metody kolekcji
$ collection2 = clect ([„dobry”, „lepszy”, „best”]);
// Zrzuć zawartość zmiennej w przeglądarce
DD ($ Collection2);

Dodaj następującą trasę w trasy \ Web.php plik, aby zadzwonić collect_method ().

Trasa :: „collect2”, „collectionController@colll_method”);

Wprowadź następujący adres URL w przeglądarce, aby sprawdzić wyjście.

http: // localhost: 8000/clect22

Następujące wyjście pojawią się po uruchomieniu adresu URL. Trzy wartości z kolekcji są wydrukowane tutaj.

Wyszukaj dane w gromadzeniu

Dane można wyszukiwać z kolekcji na wiele sposobów. Dodaj następujący kod w środku CollectionController. W kodzie pokazano dwa rodzaje wyszukiwania. Po pierwsze, zdefiniowana jest zbiór klientów i zawiera() Metoda jest używana do wyszukiwania nazwanego klienta „Janifer.' Następnie zdefiniowany jest zbiór macierzy wielowymiarowej i Gdzie() Metoda stosuje się do dwóch rodzajów wyszukiwania w kolekcji. Pierwszy Gdzie() Metoda jest używana do przeszukiwania informacji, w której ID Klucz zawiera wartość „011176645.' Drugi Gdzie() Metoda jest używana do wyszukiwania informacji, w których znaki z CSE409 Jest 88.

funkcja publiczna Search_Data ()

// zadeklaruj kolekcję
$ customer = colet ([['id' => '894673', 'nazwa' => 'rahman', 'e -mail' => '[email protected] '],
['id' => '454886', 'name' => 'janifer', 'e -mail' => '[email protected] '],
['id' => '306007', 'name' => 'Micheal', 'e -mail' => '[email protected] ']]);
// Wyszukiwanie za pomocą metody zawiera metodę
if ($ customer-> zawiera („name”, „Janifer”)))

echo "Janifer istnieje na liście klientów.
";

// zadeklaruj inną kolekcję
$ Marks = zbierz ([
['Id' => '011176644', 'marki' => ['cse401' => 87, 'cse409' => 88]],
['Id' => '011176645', 'Marks' => ['cse402' => 69, 'cse409' => 75]],
]);
// Wyszukaj za pomocą metody
Echo $ Marks-> gdzie („id”, '011176645')."
";
echo $ Marks-> gdzie („Marks.CSE409 ', 88);

Dodaj następującą trasę w trasy \ Web.php plik, aby zadzwonić Search_Data ().

Trasa :: „src_collection”, „collectionController@Search_Data”);

Wprowadź następujący adres URL w przeglądarce, aby sprawdzić wyjście.

http: // localhost: 8000/src_collection

Następujące wyjście pojawią się po uruchomieniu adresu URL.

Dane dotyczące gromadzenia filtrów

filtr() Metoda służy do filtrowania danych z kolekcji. Dodaj następujący kod w CollectionController. Kolekcja produkty jest zdefiniowany w kodzie zawierającym nazwę produktu i cenę. filtr() Metoda służy do filtrowania danych z kolekcji cena Wartość jest większa niż 4000. Zbieranie przefiltrowanych danych jest konwertowane na tablicę i drukowane przez Do pętla.

funkcja publiczna Filter_Data ()

// zadeklaruj kolekcję
$ produkty = zbierz ([
['produkt' => 'hdd', 'cena' => 6000],
[„produkt” => „mysz”, „cena” => 500],
[„produkt” => „Monitor”, „cena” => 5000],
[„produkt” => „drukarka”, „cena” => 4000],
]);
// Utwórz kolejną listę po filtrowaniu danych na podstawie wartości cenowej
$ filter_price = $ produkty-> filtr (funkcja ($ item)
return data_get ($ item, „cena”)> 4000;
);
// Odczytaj wszystkie dane jako tablicę z nowej kolekcji
$ filtred = $ filtr_Price-> all ();
// iterowanie wartości tablicy za pomocą pętli
Foreach ($ filtrowane jako $ wartość)

Echo „Nazwa:”.$ wartość [„produkt”].","."Cena: ".$ wartość [„cena”]."
";

Dodaj następującą trasę w trasy \ Web.php plik, aby zadzwonić filtr_data ().

Trasa :: „Filter_collection”, „CollectionController@filtr_data”);

Wprowadź następujący adres URL w przeglądarce, aby sprawdzić wyjście.

http: // localhost: 8000/filtr_collection

Następujące wyjście pojawią się po uruchomieniu adresu URL.

SORT DATA ZBIONY

Różny sortować Metody istnieją w Laravel w celu sortowania danych gromadzenia. Dodaj następujący kod w CollectionController. Zbiór książek jest zdefiniowany w kodzie. Sortuj według() Metoda służy do sortowania danych zbioru na podstawie klucza 'autor.„Następnie wartości posortowanej zmiennej kolekcji są drukowane w przeglądarce.

funkcja publiczna sort_data ()
// zadeklaruj kolekcję
$ books = zbierz ([
[„Nazwa” => 'Python Cookbook: Recipes for Mastering Python 3',
„Autor” => „David Beazley”],
[„Nazwa” => „Naucz się Pythona w 1 dzień: Kompletny przewodnik Python z przykładami”,
„Autor” => „Krishna Rungta”],
[„Nazwa” => „Programowanie Pythona: wprowadzenie do informatyki”,
„Autor” => 'John M. Zelle '],
[„Nazwa” => 'Python Pocket Reference 5ED: Python w kieszeni' ',
„Autor” => „Mark Lutz”]
]);
// Sortuj dane zbioru na podstawie nazwy autora
$ sortedbook = $ books-> sortby („autor”);
// Zrzuć zawartość zmiennej w przeglądarce
dd ($ sortedbook-> wartości ()-> toArray ());

Dodaj następującą trasę w trasy \ Web.php plik, aby zadzwonić sort_data ().

Trasa :: „sort_collection”, „collectionController@sort_data”);

Wprowadź następujący adres URL w przeglądarce, aby sprawdzić wyjście.

http: // localhost: 8000/sort_collection

Następujące wyjście pojawią się po uruchomieniu adresu URL.

Dane dotyczące zbierania pokroju

Określoną część można wyciąć z kolekcji za pomocą Brać() metoda. Dodaj następujący kod w CollectionController. Brać() Metoda jest używana w kodzie do utworzenia nowej listy, wycinając pierwsze trzy elementy z kolekcji. Następnie Do pętla drukuje wartości nowej kolekcji.

funkcja publiczna slice_data ()
// zadeklaruj kolekcję
$ języki = clect (['php', „bash”, „python”, „java”, „c#”, „c ++”]);
// Odzyskaj pierwsze trzy dane
$ slice = $ języki-> weź (3);
// iterowanie wartości zbioru
Foreach ($ slice as $ value)

echo $ wartość."";

Dodaj następującą trasę w trasy \ Web.php plik, aby zadzwonić slice_data ().

Trasa :: „slice_collection”, „collectionController@slice_data”);

Wprowadź następujący adres URL w przeglądarce, aby sprawdzić wyjście.

http: // localhost: 8000/slice_collection

Następujące wyjście pojawią się po uruchomieniu adresu URL.

Znajdź różnicę między dwoma kolekcjami

diff () Metoda służy do znalezienia wartości z pierwszej kolekcji, które nie istnieją w drugiej kolekcji. Dodaj następujący kod w CollectionController. Tutaj zdefiniowano dwie zmienne kolekcji. diff () Metoda generuje nową kolekcję po odzyskaniu wartości z List1 które nie istnieją w Lista 2.

funkcja publiczna Find_diff ()
// Deklaruj dwie kolekcje
$ list1 = clect ([„notatnik”, „pen”, „Sharpner”, „Scale”, „ołów”]);
$ list2 = clect ([„ołówek”, „kolorowy ołówek”, „kolorowy papier”, „pen”]);
// Znajdź, które dane istnieją na liście 1, ale nie na liście2
$ newList = $ list1-> diff ($ list2);
// Zrzuć zawartość zmiennej w przeglądarce
DD ($ NewList);

Dodaj następującą trasę w trasy \ Web.php plik, aby zadzwonić Find_diff ().

Trasa :: „diff_collection”, „CollectionController@Find_diff”);

Wprowadź następujący adres URL w przeglądarce, aby sprawdzić wyjście.

http: // localhost: 8000/diff_collection

Następujące wyjście pojawią się po uruchomieniu adresu URL.

Dane dotyczące gromadzenia

trzepnięcie() Metoda jest używana do tworzenia klucza do wartości i wartości do klucza kolekcji. Dodaj następujący kod w CollectionController, aby sprawdzić funkcję trzepnięcie() metoda. Zbiór trzech elementów jest zdefiniowany w kodzie. trzepnięcie() metoda jest stosowana do kolekcji i wyjścia trzepnięcie() Metoda jest drukowana za pomocą dd () metoda.

funkcja publiczna flip_data ()
// zadeklaruj kolekcję
$ products = clection (['name' => 'Samsung a40', 'marca' => 'samsung', 'cena' => '300 USD']);
// Zrzuć zawartość zmiennej w przeglądarce
dd ($ produkty-> flip ());

Dodaj następującą trasę w trasy \ Web.php plik, aby zadzwonić flip_data ().

Trasa :: „flip_collection”, „collectionController@flip_data”);

Wprowadź następujący adres URL w przeglądarce, aby sprawdzić wyjście.

http: // localhost: 8000/flip_collection

Następujące wyjście pojawią się po uruchomieniu adresu URL.

Odzyskać kolekcję

Dostawać() Metoda służy do odczytu wartości konkretnego klucza z kolekcji. Dodaj następujący kod w CollectionController. Wartość ''nazwa' klucz jest pobierany w kodzie za pomocą Dostawać() metoda.

Funkcja publiczna ROTRIETE_DATA ()
// zadeklaruj kolekcję
$ products = clection (['name' => 'Samsung a40', 'marca' => 'samsung', 'cena' => '300 USD']);
dd ($ produkty-> get („name”));

Dodaj następującą trasę w trasy \ Web.php plik, aby zadzwonić pobierać dane().

Trasa :: „read_collection”, „collectionController@retrieve_data”);

Wprowadź następujący adres URL w przeglądarce, aby sprawdzić wyjście.

http: // localhost: 8000/read_collection

Następujące wyjście pojawią się po uruchomieniu adresu URL.

Dane gromadzenia grupy

Grupuj według() Metoda służy do tworzenia nowej kolekcji z innej kolekcji poprzez grupowanie na podstawie konkretnej wartości kluczowej. Dodaj następujący kod w środku CollectionController. Grupuj według() Metoda jest tutaj używana do zwrócenia nowego kolekcji poprzez grupowanie wartości na podstawie „Apr' klucz.

funkcja publiczna grupa_data()

Funkcja publiczna grupa_data ()
$ sales = zbierz ([
[„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-> grupa („ap”));

Dodaj następującą trasę w trasy \ Web.php plik, aby zadzwonić grupa_data ().

Trasa :: „Group_collection”, „CollectionController@grupa_data”);

Wprowadź następujący adres URL w przeglądarce, aby sprawdzić wyjście.

http: // localhost: 8000/grupa_collection

Następujące wyjście pojawią się po uruchomieniu adresu URL.

Połącz dane zbioru

Implode () Metoda służy do łączenia określonych kluczowych wartości z kolekcji. Dodaj następujący kod w środku CollectionController. Implode () Metoda jest tutaj stosowana do połączenia wartości nazwa klucz kolekcji z przestrzenią.

funkcja publiczna Join_Data ()
// zadeklaruj kolekcję
$ customer = colet ([['id' => '894673', 'nazwa' => 'rahman', 'e -mail' => '[email protected] '],
['id' => '454886', 'name' => 'janifer', 'e -mail' => '[email protected] '],
['id' => '306007', 'name' => 'Micheal', 'e -mail' => '[email protected] ']]);
// Połącz i wydrukuj wartość
dd ($ customer-> implode ('name', "));

Dodaj następującą trasę w trasy \ Web.php plik, aby zadzwonić join_data ().

Trasa :: „Join_Collection”, „CollectionController@Join_Data”);

Wprowadź następujący adres URL w przeglądarce, aby sprawdzić wyjście.

http: // localhost: 8000/join_collection

Następujące wyjście pojawią się po uruchomieniu adresu URL.

Przeczytaj klucze kolekcji

Klucze() Metoda służy do tworzenia nowej kolekcji ze wszystkimi klawiszami innej kolekcji. Dodaj następujący kod w środku CollectionController. Zbiór zdefiniowany w kodzie zawiera różne typy danych jako elementy, takie jak wartość z indeksem numerycznym, wartość z kluczem i inna tablica.

funkcja publiczna read_keys ()
// zadeklaruj kolekcję
$ mixdata = zbierz ([
[„Witryna” => 'Google.com ',' type '=>' wyszukiwarka '],' język '=>' php ',
1234, „name” => „Fahmida”, „game” => 'pubg', 'color' => 'blue']);
// Wydrukuj nową kolekcję generowaną metodą Keys ()
dd ($ mixdata-> keys ());

Dodaj następującą trasę w trasy \ Web.php plik, aby zadzwonić read_keys ().

Trasa :: „key_collection”, „CollectionController@read_keys”);

Wprowadź następujący adres URL w przeglądarce, aby sprawdzić wyjście.

http: // localhost: 8000/key_collection

Następujące wyjście pojawią się po uruchomieniu adresu URL.

Wniosek

Zbiór Laravel pozwala na wykonanie wielu różnych rodzajów zadań z danymi, takimi jak tablice PHP. W tym samouczku wyjaśniono niektóre przydatne metody gromadzenia laravel za pomocą bardzo prostego kodu. Elokwent ORM to kolejne zastosowanie kolekcji w Laravel, która nie jest omawiana w tym samouczku. Jednym z głównych ograniczeń klasy zbiórki jest to, że generuje ona nową kolekcję za każdym razem, gdy nazywana jest metoda, ponieważ nie jest ona zmienna. Po przeczytaniu tego samouczka czytelnik powinien teraz znać podstawowe zastosowania kolekcji Laravel.