Būtinos sąlygos
Prieš pradėdami šią mokymo programą, turite atlikti šias užduotis:
- Įdiekite naują „Laravel“ projekto kopiją
- 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_tableAtidarykite 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 migruojaKurti 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 GamintojasAtidarykite 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 produktasvardų 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.