Laravel Eloquent Orm Tutorial

Laravel Eloquent Orm Tutorial
Elokwent ORM (Mapper relacji obiektowych) jest łatwy w użyciu dla użytkowników, którzy wiedzą, jak używać obiektów w PHP. ORM jest ważną cechą frameworka Laravel, uważaną za potężną i drogą funkcję Laravel. ORM działa z obiektami bazy danych i służy do tworzenia relacji z tabelami bazy danych. Każda tabela bazy danych jest mapowana za pomocą konkretnego elokwentnego modelu. Obiekt modelowy zawiera różne metody pobierania i aktualizacji danych z tabeli bazy danych. Elokwent ORM może być używany z wieloma bazami danych, wdrażając ActiveMethod. Ta funkcja sprawia, że ​​zadania związane z bazą danych, takie jak definiowanie relacji, prostsze poprzez zdefiniowanie tabel bazy danych. Ten samouczek wyjaśnia, jak zastosować elokwentne orm w projektach laravel.

Wymagania wstępne

Przed rozpoczęciem tego samouczka musisz wykonać następujące zadania:

  1. Zainstaluj nową kopię projektu Laravel
  2. Wykonaj połączenie bazy danych

Utwórz tabele

Aby wykonać kroki samouczka, musisz utworzyć dwie tabele w bazie danych. To są tabela producenta i stół produktów. Związek między tymi dwoma tabelami będzie odpowiednio jeden do wielu. Uruchom następujące polecenie, aby utworzyć plik migracyjny do tworzenia struktury producenci tabela.

$ PHP Artisan Make: Migracja Create_ManUflurer_Table

Otwórz plik migracyjny od Baza danych \ Migracja folder i zmodyfikuj w górę() Metoda z następującym kodem. Tabela będzie zawierać sześć pola: id, nazwa, adres, telefon, utworzony_at i zaktualizowany_at.

Funkcja publiczna w górę ()

Schema :: „producenci”, funkcja (Blueprint $ table)
$ table-> id ();
$ tabela-> string ('name')-> unikalne ();
$ TABLE-> Text („Adres”);
$ table-> String („Phone”);
$ TABLE-> Timestamps ();
);

Uruchom następujące polecenie, aby utworzyć plik migracyjny do tworzenia struktur produkty tabela.

$ PHP Artisan Make: Migracja Create_Product_Table

Otwórz plik migracyjny z Baza danych \ Migracja folder i zmodyfikuj w górę() Metoda z następującym kodem. Tabela będzie zawierać siedem pól: id, nazwa, cena, producent_id, utworzony_at i zaktualizowany_at. Tutaj Manufacture_id to klucz obcy dla produkty tabela.

Funkcja publiczna w górę ()

Schema :: „produkty”, funkcja (tabela $)
$ table-> id ();
$ tabela-> string ('name')-> unikalne ();
$ TABLE-> dziesiętne („cena”, 10, 2);
$ TABLE-> BIGINTEGER („producent_id”)-> unsigned ();
$ tabela-> zagraniczne („producent_id”)-> referencje („id”)-> on („producenci”);
$ TABLE-> Timestamps ();
);

Uruchom następujące polecenie migracyjne, aby utworzyć tabele w bazie danych.

Migruj migruj Artisan $

Utwórz modele

Musisz także utworzyć dwa modele, nazwane Producent I Produkt, Dla wcześniej utworzonych tabel. Uruchom następujące polecenie, aby utworzyć Producent Model.

$ PHP Artisan Make: Model producent

Otwórz model z App folder i zmodyfikuj kod za pomocą następującego kodu. $ wypełnione służy do zdefiniowania obowiązkowych pól produkcja tabela. produkty () Metoda służy do ustawienia typu relacji z produkty tabela.

Aplikacja przestrzeni nazw;
Użyj Illuminate \ Database \ eloquent \ Model;
Producent klas rozszerza model

Protected $ filebable = [
„Nazwa”, „Adres”, „Telefon”,
];
Produkty funkcyjne publiczne ()

return $ this-> HasMany („App \ Product”);

Uruchom następujące polecenie, aby utworzyć Produkt Model.

Otwórz model z App folder i zmodyfikuj kod za pomocą następującego kodu. $ wypełnione służy do zdefiniowania obowiązkowych pól produkty tabela. producenci () Metoda służy do ustawienia typu relacji z producenci tabela.

$ PHP Artisan Make: Model Product
Aplikacja przestrzeni nazw;
Użyj Illuminate \ Database \ eloquent \ Model;
Produkt klas rozszerza model

Protected $ filebable = [
„Nazwa”, „cena”, „producent_id”
];
Producenci funkcji publicznych ()

return $ this-> Bierensto („app \ producent”);

Utwórz kontrolery

Uruchom następujące polecenia, aby utworzyć MANUCONTROLLER I ProductController.

$ PHP Artisan Make: kontroler manucontroller
$ PHP Artisan Make: Controller ProductController

Operacje CRUD za pomocą elokwentnego ORM

Operacje CRUD pokazano poniżej, najpierw dodając metody do tych dwóch kontrolerów.

Wstawienie danych

Tabela producenta

Dodaj Producent model u góry MANUCONTROLLER. Następnie dodaj następujący kod w środku MANUCONTROLLER model do wstawienia dwóch rekordów do producenci tabela.

funkcja publiczna create_data ()

Producent :: Utwórz ([
„Nazwa” => „ABC Trade”,
„Adres” => '34, Mirpur, Dhaka '',
„Phone” => '01878562323'
]);
Producent :: Utwórz ([
„Nazwa” => „Rahim afroz”,
„Adres” => '123, Dhanmondi, Dhaka' ',
„Phone” => '01878562900' '
]);
Echo „Wstaw dane producenta”;

Dodaj następującą trasę w trasy \ Web.php plik do wykonania create_data () metoda.

Trasa :: „manu”, „manucontroller@create_data”);

Następujące wyjście pojawią się po wprowadzeniu adresu URL poniżej w przeglądarce.

http: // localhost: 8000/manu

Tabela produktów

Dodaj Produkt model u góry ProductController. Następnie dodaj następujący kod w środku ProductController Aby wstawić trzy rekordy do produkty tabela.

indeks funkcji publicznej ()

Produkt :: stwórz ([
„Nazwa” => „TV 32 cale”,
„Cena” => 10000,
„producent_id” => 1
]);
Produkt :: stwórz ([
„Nazwa” => „Walton Lodówka”,
„Cena” => 20000,
„producent_id” => 1
]);
Produkt :: stwórz ([
„Nazwa” => 'IPS 7832',
„cena” => 25000,
„producent_id” => 2
]);
Echo „Wstaw dane o produkcie”;

Dodaj następującą trasę w trasy \ Web.php plik do wykonania indeks() metoda.

Trasa :: „produkt”, „produktController@index”);

Następujące wyjście pojawią się po wprowadzeniu adresu URL poniżej w przeglądarce.

http: // localhost: 8000/produkt

Wybierz dane

Dodaj następującą metodę wewnątrz MANUCONTROLLER Aby odzyskać wszystkie zapisy produkcjatabela s i powiązane zapisy produkty tabela.

funkcja publiczna Select_Data ()

$ producenci = producent :: all ();
Foreach ($ producenci jako $ manu)
$ produkty = produkt :: gdzie („producent_id”, $ manu-> id)-> get ();
Echo "Producent: $ manu-> nazwa
";
Foreach ($ produkty jako $ pro)

Echo "

Nazwa produktu: $ pro-> nazwa

";
Echo "

Cena produktu: $ pro-> cena


";


Dodaj następującą trasę w trasy \ Web.php plik do wykonania Select_Data () metoda.

Trasa :: „produkt_detail”, „manucontroller@select_data”);

Następujące wyjście pojawią się po wprowadzeniu adresu URL poniżej w przeglądarce.

http: // localhost: 8000/produkt_detail

Aktualizować dane

Dodaj następującą metodę wewnątrz MANUCONTROLLER Aby zaktualizować rekord produkty Tabela zawierająca ID wartość 2.

funkcja publiczna aktualizacja_data ()

$ produkt = produkt :: find (2);
Echo „Szczegóły produktu przed aktualizacją:
";
Echo "

Nazwa produktu: $ produkt-> nazwa

";
Echo "

Cena produktu: $ produkt-> cena


";
$ Product-> name = 'Walton Blender';
$ produkt-> cena = 1000;
$ produkt-> save ();
Echo „Szczegóły produktu po aktualizacji:
";
Echo "

Nazwa produktu: $ produkt-> nazwa

";
Echo "

Cena produktu: $ produkt-> cena


";

Dodaj następującą trasę w trasy \ Web.php plik do wykonania Uaktualnij dane() metoda.

Trasa :: „aktualizacja_data”, „manucontroller@aktualizacja_data”);

Następujące wyjście pojawią się po wprowadzeniu adresu URL poniżej w przeglądarce.

http: // localhost: 8000/aktualizacja_data

Usunąć dane

Dodaj następującą metodę wewnątrz MANUCONTROLLER Aby usunąć wiele rekordów z produkty Tabela i pojedynczy rekord z producenci tabela.

funkcja publiczna delete_data ()
// usuń wiele danych
Produkt :: Destroy ([1, 2]);
// usuń pojedyncze dane
Producent :: niszczy (1);
Echo „Dane są usuwane.";

Dodaj następującą trasę w trasy \ Web.php plik do wykonania Usunąć dane() metoda.

Trasa :: „delete_data”, „manucontroller@delete_data”);

Następujące wyjście pojawią się po wprowadzeniu adresu URL poniżej w przeglądarce.

http: // localhost: 8000/delete_data

Film instruktażowy

Wniosek

Ten samouczek pokazał, jak tworzyć relacje między tabelami i jak wdrożyć operacje CRUD za pomocą elokwentnego ORM. Nawet nowi użytkownicy Laravel będą mogli zrozumieć podstawowe zastosowania elokwentnego OPM po przeczytaniu tego samouczka.