Předpoklady
Před zahájením tohoto kurzu musíte provést následující úkoly:
- Nainstalujte novou kopii projektu Laravel
- Vytvořte připojení k databázi
Vytvořit tabulky
Chcete-li dokončit kroky tohoto kurzu, musíte v databázi vytvořit dvě tabulky. Jedná se o tabulku výrobce a tabulku produktů. Vztah mezi těmito dvěma tabulkami bude jeden k mnoha. Spuštěním následujícího příkazu vytvořte migrační soubor pro vytvoření struktury výrobci stůl.
$ php řemeslník make: migrace create_manufacturer_tableOtevřete migrační soubor z databáze \ migrace složku a upravte nahoru() metoda s následujícím kódem. Tabulka bude obsahovat šest polí: ID, jméno, adresa, telefon, created_at a updated_at.
veřejná funkce nahoru ()Schéma :: create ('Výrobci', funkce (tabulka Blueprint $)
$ table-> id ();
$ table-> string ('name') -> unique ();
$ table-> text ('address');
$ table-> string ('phone');
$ table-> timestamps ();
);
Spuštěním následujícího příkazu vytvořte migrační soubor pro vytvoření struktur souboru produkty stůl.
$ php řemeslník make: migrace create_product_tableOtevřete migrační soubor z databáze \ migrace složku a upravte nahoru() metoda s následujícím kódem. Tabulka bude obsahovat sedm polí: ID, název, cena, id_výrobce, created_at a updated_at. Zde je manufacturing_id cizí klíč pro produkty stůl.
veřejná funkce nahoru ()Schéma :: create ('products', function (Blueprint $ table)
$ table-> id ();
$ table-> string ('name') -> unique ();
$ table-> decimal ('price', 10, 2);
$ table-> bigInteger ('Manufacturer_ID') -> unsigned ();
$ table-> cizí ('id_výrobce') -> reference ('id') -> na ('výrobci');
$ table-> timestamps ();
);
Spuštěním následujícího příkazu migrate vytvořte tabulky v databázi.
$ php řemeslník migrujeVytvořit modely
Musíte také vytvořit dva modely s názvem Výrobce a Produkt, pro dříve vytvořené tabulky. Spuštěním následujícího příkazu vytvořte Výrobce Modelka.
$ php řemeslník make: model VýrobceOtevřete model z aplikace složku a upravte kód následujícím kódem. $ vyplnitelné se používá k definování povinných polí výroba stůl. The produkty() metoda se používá k nastavení typu relace s produkty stůl.
jmenný prostor App;použijte Illuminate \ Database \ Eloquent \ Model;
třída Výrobce rozšiřuje Model
chráněno $ fillable = [
'name', 'address', 'phone',
];
produkty veřejné funkce ()
vrátit $ this-> hasMany ('App \ Product');
Spuštěním následujícího příkazu vytvořte Produkt Modelka.
Otevřete model z aplikace složku a upravte kód následujícím kódem. $ vyplnitelné se používá k definování povinných polí produkty stůl. The výrobci () metoda se používá k nastavení typu relace s vyrábí stůl.
$ php řemeslník make: model Produktjmenný prostor App;
použijte Illuminate \ Database \ Eloquent \ Model;
třída Produkt rozšiřuje Model
chráněné $ fillable = [
'name', 'price', 'Manufacturer_id'
];
výrobci veřejných funkcí ()
vrátit $ this-> patří k („App \ Manufacturer“);
Vytvořit řadiče
Vytvořte spuštěním následujících příkazů ManuController a ProductController.
$ php artisan make: controller ManuController$ php artisan make: controller ProductController
CRUD operace využívající výmluvný ORM
Níže jsou zobrazeny operace CRUD přidáním metod k těmto dvěma řadičům.
Vkládání dat
Tabulka výrobce
Přidat Výrobce model v horní části ManuController. Dále přidejte následující kód dovnitř ManuController model pro vložení dvou záznamů do vyrábí stůl.
veřejná funkce create_data ()Výrobce :: create ([
'name' => 'ABC Trade',
'address' => '34, Mirpur, Dhaka ',
'phone' => '01878562323'
]);
Výrobce :: create ([
'name' => 'Rahim Afroze',
'address' => '123, Dhanmondi, Dhaka',
'phone' => '01878562900'
]);
echo "Data výrobce vložena";
Přidejte následující trasu do trasy \ web.php soubor k provedení create_data () metoda.
Route :: get ('manu', '[email protected] _data');Po zadání adresy URL níže v prohlížeči se zobrazí následující výstup.
http: // localhost: 8000 / manu
Tabulka produktů
Přidat Produkt model v horní části ProductController. Dále přidejte následující kód dovnitř ProductController vložit tři záznamy do produkty stůl.
index veřejné funkce ()Produkt :: vytvořit ([
'name' => 'TV 32 Inche',
'price' => 10 000,
'manufacturing_id' => 1
]);
Produkt :: vytvořit ([
'name' => 'Walton Fridge',
'price' => 20000,
'manufacturing_id' => 1
]);
Produkt :: vytvořit ([
'name' => 'IPS 7832',
'price' => 25000,
'Manufacturer_ID' => 2
]);
echo "Data produktu vložena";
Přidejte následující trasu do trasy \ web.php soubor k provedení index() metoda.
Route :: get ('product', '[email protected]');Po zadání níže uvedené adresy URL v prohlížeči se zobrazí následující výstup.
http: // localhost: 8000 / produkt
Vyberte Data
Přidejte následující metodu dovnitř ManuController získat všechny záznamy o výrobatabulka a související záznamy produkty stůl.
veřejná funkce select_data ()$ Výrobci = Výrobce :: vše ();
foreach ($ výrobci jako $ manu)
$ products = Product :: where ('manufacturing_id', $ manu-> id) -> get ();
ozvěna "Výrobce: $ manu-> name
";
foreach ($ produkty jako $ pro)
ozvěna "
Název produktu: $ pro-> name
";ozvěna "
Cena produktu: $ pro-> cena
";
Přidejte následující trasu do trasy \ web.php soubor k provedení select_data () metoda.
Route :: get ('product_detail', '[email protected] _data');Po zadání níže uvedené adresy URL v prohlížeči se zobrazí následující výstup.
http: // localhost: 8000 / product_detail
Aktualizovat data
Přidejte následující metodu dovnitř ManuController aktualizovat záznam produkty tabulka, která obsahuje id hodnota 2.
public function update_data ()$ product = Product :: find (2);
echo "Podrobnosti o produktu před aktualizací:
";
ozvěna "
Název produktu: $ product-> name
";ozvěna "
Cena produktu: $ product-> cena
";
$ product-> name = 'Walton Blender';
$ produkt-> cena = 1000;
$ product-> save ();
echo "Podrobnosti o produktu po aktualizaci:
";
ozvěna "
Název produktu: $ product-> name
";ozvěna "
Cena produktu: $ product-> cena
";
Přidejte následující trasu do trasy \ web.php soubor k provedení update_data () metoda.
Route :: get ('update_data', '[email protected] _data');Po zadání níže uvedené adresy URL v prohlížeči se zobrazí následující výstup.
http: // localhost: 8000 / update_data
Odstranit data
Přidejte následující metodu dovnitř ManuController odstranit více záznamů z produkty tabulka a jeden záznam z výrobci stůl.
veřejná funkce delete_data ()// Smazat více dat
Produkt :: zničit ([1, 2]);
// Odstranit jednotlivá data
Výrobce :: zničit (1);
echo "Data jsou smazána.";
Přidejte následující trasu do trasy \ web.php soubor k provedení delete_data () metoda.
Route :: get ('delete_data', '[email protected] _data');Po zadání adresy URL níže v prohlížeči se zobrazí následující výstup.
http: // localhost: 8000 / delete_data
Výukový program pro video
Závěr
Tento kurz vám ukázal, jak vytvořit vztahy mezi tabulkami a jak implementovat operace CRUD pomocí výmluvného ORM. I noví uživatelé Laravelu budou po přečtení tohoto tutoriálu schopni pochopit některá základní použití Eloquent OPM.