laravel

„Laravel Eloquent ORM“ pamoka

„Laravel Eloquent ORM“ pamoka
Iškalbingą ORM (Object Relation Mapper) lengva naudoti vartotojams, mokantiems naudoti objektus PHP. ORM yra svarbi „Laravel“ sistemos savybė, laikoma galinga ir brangia „Laravel“ savybe. ORM veikia su duomenų bazės objektais ir naudojamas užmegzti ryšius su duomenų bazės lentelėmis. Kiekviena duomenų bazės lentelė susiejama su tam tikru iškalbingu modeliu. Modelio objekte yra įvairūs metodai, kaip gauti ir atnaujinti duomenis iš duomenų bazės lentelės. Iškalbus ORM gali būti naudojamas su keliomis duomenų bazėmis, įgyvendinant „ActiveMethod“. Ši funkcija supaprastina su duomenų baze susijusias užduotis, pvz., Santykių apibrėžimą, apibrėždama duomenų bazės lenteles. Šioje pamokoje paaiškinta, kaip pritaikyti „Laravel Eloquent ORM“ savo „Laravel“ projektuose.

Būtinos sąlygos

Prieš pradėdami šią mokymo programą, turite atlikti šias užduotis:

  1. Įdiekite naują „Laravel“ projekto kopiją
  2. Užmegzkite duomenų bazės ryšį

Kurkite lenteles

Norėdami baigti mokymo programos veiksmus, duomenų bazėje turite sukurti dvi lenteles. Tai yra gamintojo ir produktų lentelė. Santykis tarp šių dviejų lentelių bus atitinkamai vienas prie daugelio. Paleiskite šią komandą, kad sukurtumėte perkėlimo failą, skirtą sukurti gamintojai stalo.

$ php artisan make: migracija create_manufacturer_table

Atidarykite perkėlimo failą iš duomenų bazė \ migracija aplanką ir modifikuokite aukštyn() metodas su tokiu kodu. Lentelėje bus šeši laukai: ID, vardas, adresas, telefonas, sukurtas_at ir atnaujintas_at.

viešoji funkcija aukštyn ()

Schema :: create ('gamintojai', funkcija (Blueprint $ lentelė)
$ table-> id ();
$ table-> string ('name') -> unikalus ();
$ table-> text ('address');
$ table-> string ('telefonas');
$ lentelė-> laiko žymės ();
);

Paleiskite šią komandą, kad sukurtumėte perkėlimo failą, skirtą sukurti Produktai stalo.

„$ php“ amatininkas: „migracija“ sukurkite_produkto_tabelį

Atidarykite perkėlimo failą iš duomenų bazė \ migracija aplanką ir modifikuokite aukštyn() metodas su tokiu kodu. Lentelėje bus septyni laukai: ID, pavadinimas, kaina, gamintojo ID, sukurtas_at ir atnaujintas_at. Čia „production_id“ yra užsienio raktas Produktai stalo.

viešoji funkcija aukštyn ()

Schema :: create ('produktai', funkcija (Blueprint $ lentelė)
$ table-> id ();
$ table-> string ('name') -> unikalus ();
$ table-> decimal ('price', 10, 2);
$ table-> bigInteger ('manufacturer_id') -> nepasirašytas ();
$ table-> Užsienio ('gamintojo_ID') -> nuorodos ('id') -> įjungta ('gamintojai');
$ lentelė-> laiko žymės ();
);

Norėdami sukurti lenteles duomenų bazėje, vykdykite šią komandą migrate.

$ php amatininkai migruoja

Kurti modelius

Taip pat turite sukurti du modelius, pavadintus Gamintojas ir Produktas, anksčiau sukurtoms lentelėms. Paleiskite šią komandą, kad sukurtumėte Gamintojas modelis.

$ php amatininkų gamintojas: modelis Gamintojas

Atidarykite modelį iš programa aplanką ir pakeiskite kodą tokiu kodu. $ galima užpildyti yra naudojamas apibrėžti privalomus gamyba stalo. The Produktai() metodas naudojamas nustatyti santykio tipą su Produktai stalo.

vardų srities programa;
naudoti Illuminate \ Database \ Eloquent \ Model;
klasės gamintojas pratęsia modelį

apsaugotas $ fillable = [
„vardas“, „adresas“, „telefonas“,
];
viešosios paskirties produktai ()

grąžinti $ this-> hasMany ('App \ Product');

Paleiskite šią komandą, kad sukurtumėte Produktas modelis.

Atidarykite modelį iš programa aplanką ir pakeiskite kodą tokiu kodu. $ galima užpildyti naudojamas apibrėžti privalomus Produktai stalo. The gamintojai () metodas naudojamas nustatyti santykio tipą su gamina stalo.

$ php amatininkų gamintojas: modelis produktas
vardų srities programa;
naudoti Illuminate \ Database \ Eloquent \ Model;
klasės produktas prailgina modelį

apsaugotas $ fillable = [
„pavadinimas“, „kaina“, „gamintojo_id“
];
viešųjų funkcijų gamintojai ()

grąžinti $ this-> priklausoTo ('App \ Manufacturer');

Sukurkite valdiklius

Norėdami sukurti, vykdykite šias komandas „ManuController“ ir „ProductController“.

$ php amatininkų gamintojas: valdiklis „ManuController“
$ php amatininko gamintojas: valdiklis „ProductController“

CRUD operacijos naudojant iškalbingą ORM

CRUD operacijos parodytos žemiau, pirmiausia pridedant metodus prie šių dviejų valdiklių.

Įterpiami duomenys

Gamintojo lentelė

Pridėti Gamintojas modelis viršuje „ManuController“. Tada pridėkite šį kodą viduje „ManuController“ modelis įterpti du įrašus į gamina stalo.

viešoji funkcija create_data ()

Gamintojas :: sukurti ([
'name' => 'ABC prekyba',
'address' => '34, Mirpur, Daka ',
'telefonas' => '01878562323'
]);
Gamintojas :: sukurti ([
'name' => 'Rahimas Afroze',
'address' => '123, Dhanmondi, Dhaka',
'telefonas' => '01878562900'
]);
aidas „Įterpti gamintojo duomenys“;

Įtraukite šį maršrutą į maršrutai \ internetas.php failą vykdyti sukurti_duomenis () metodas.

Route :: get ('manu', '[email protected] _data');

Ši išvestis bus rodoma naršyklėje įvedus žemiau esantį URL.

http: // localhost: 8000 / manu

Produktų lentelė

Pridėti Produktas modelis viršuje „ProductController“. Tada pridėkite šį kodą viduje „ProductController“ įterpti tris įrašus į Produktai stalo.

viešųjų funkcijų rodyklė ()

Produktas :: sukurti ([
'name' => 'TV 32 colių',
„kaina“ => 10000,
„gamintojo_ID“ => 1
]);
Produktas :: sukurti ([
'name' => 'Waltono šaldytuvas',
„kaina“ => 20000,
„gamintojo_id“ => 1
]);
Produktas :: sukurti ([
'name' => 'IPS 7832',
„kaina“ => 25000,
„gamintojo_ID“ => 2
]);
aidas „Įterpti produkto duomenys“;

Įtraukite šį maršrutą į maršrutai \ internetas.php failą vykdyti indeksas() metodas.

Route :: get ('product', '[email protected]');

Ši išvestis bus rodoma naršyklėje įvedus žemiau esantį URL.

http: // localhost: 8000 / produktas

Pasirinkite Duomenys

Pridėkite šį metodą viduje „ManuController“ gauti visus įrašus apie gamybas lentelę ir su ja susijusius įrašus Produktai stalo.

viešoji funkcija select_data ()

$ gamintojai = Gamintojas :: visi ();
foreach ($ gamintojai kaip $ manu)
$ produktai = produktas :: kur ('gamintojo_ID', $ ranki-> id) -> gauti ();
aidas "Gamintojas: $ manu-> vardas
";
foreach ($ produktai kaip $ pro)

aidas "

Produkto pavadinimas: $ pro-> pavadinimas

";
aidas "

Prekės kaina: $ pro-> kaina


";


Įtraukite šį maršrutą į maršrutai \ internetas.php failą vykdyti select_data () metodas.

Route :: get ('product_detail', '[email protected] _data');

Ši išvestis bus rodoma naršyklėje įvedus žemiau esantį URL.

http: // localhost: 8000 / product_detail

Atnaujinti duomenis

Pridėkite šį metodą viduje „ManuController“ atnaujinti Produktai lentelę, kurioje yra id vertė 2.

viešosios funkcijos atnaujinimo_duomenys ()

$ produktas = produktas :: rasti (2);
echo "Informacija apie produktą prieš atnaujinant:
";
aidas "

Produkto pavadinimas: $ product-> pavadinimas

";
aidas "

Prekės kaina: $ produktas-> kaina


";
$ product-> name = 'Walton Blender';
$ produktas-> kaina = 1000;
$ product-> save ();
echo "Informacija apie produktą po atnaujinimo:
";
aidas "

Produkto pavadinimas: $ product-> pavadinimas

";
aidas "

Prekės kaina: $ produktas-> kaina


";

Įtraukite šį maršrutą į maršrutai \ internetas.php failą vykdyti update_data () metodas.

Maršrutas :: get ('update_data', '[email protected] _data');

Ši išvestis bus rodoma naršyklėje įvedus žemiau esantį URL.

http: // localhost: 8000 / update_data

Ištrinti duomenis

Pridėkite šį metodą viduje „ManuController“ ištrinti kelis įrašus iš Produktai lentelę ir vieną įrašą iš gamintojai stalo.

viešoji funkcija ištrinti_duomenis ()
// Ištrinti kelis duomenis
Produktas :: sunaikinti ([1, 2]);
// Ištrinti pavienius duomenis
Gamintojas :: sunaikinti (1);
echo "Duomenys ištrinami.";

Įtraukite šį maršrutą į maršrutai \ internetas.php failą vykdyti ištrinti_duomenis () metodas.

Maršrutas :: get ('delete_data', '[email protected] _data');

Ši išvestis bus rodoma naršyklėje įvedus žemiau esantį URL.

http: // localhost: 8000 / delete_data

Vaizdo įrašų pamoka

Išvada

Ši pamoka parodė, kaip sukurti ryšius tarp lentelių ir kaip įgyvendinti CRUD operacijas naudojant „Eloquent ORM“. Net nauji „Laravel“ vartotojai, perskaitę šią pamoką, galės suprasti kai kuriuos pagrindinius „Eloquent OPM“ naudojimo būdus.

Kaip padidinti FPS sistemoje „Linux“?
FPS reiškia Kadrai per sekundę. FPS užduotis yra išmatuoti kadrų greitį atkuriant vaizdo įrašus ar žaidimus. Paprastais žodžiais, nepertraukiamų viso ...
Populiariausi „Oculus App Lab“ žaidimai
Jei esate „Oculus“ laisvų rankų įrangos savininkas, turite žinoti, kaip krauti iš šono. Šoninis įkėlimas yra ne parduotuvėje esančio turinio įdiegimas...
10 geriausių žaidimų, kuriuos reikia žaisti naudojant „Ubuntu“
„Windows“ platforma buvo viena iš dominuojančių žaidimų platformų dėl didžiulio procento žaidimų, kurie šiandien kuriami natūraliai palaikant „Windows...