Forudsætninger
Før du starter denne tutorial, skal du udføre følgende opgaver:
- Installer en ny kopi af Laravel-projektet
- Opret databaseforbindelsen
Opret tabeller
For at gennemføre trinene i vejledningen skal du oprette to tabeller i databasen. Dette er producentens tabel og produkttabellen. Forholdet mellem disse to tabeller vil være henholdsvis en for mange. Kør følgende kommando for at oprette migreringsfilen til oprettelse af strukturen af producenter bord.
$ php håndværkerfabrik: migration create_manufacturer_tableÅbn migreringsfilen fra database \ migration mappen og rediger op() metode med følgende kode. Tabellen indeholder seks felter: ID, navn, adresse, telefon, created_at og updated_at.
offentlig funktion op ()Skema :: Opret ('producenter', funktion (Blueprint $ tabel)
$ tabel-> id ();
$ tabel-> streng ('navn') -> unik ();
$ tabel-> tekst ('adresse');
$ tabel-> streng ('telefon');
$ tabel-> tidsstempler ();
);
Kør følgende kommando for at oprette en migreringsfil til oprettelse af strukturer for Produkter bord.
$ php håndværkerfabrik: migration create_product_tableÅbn migreringsfilen fra database \ migration mappen og rediger op() metode med følgende kode. Tabellen indeholder syv felter: ID, navn, pris, fabrikant-id, oprettet_at og opdateret_at. Her er manufacturing_id en fremmed nøgle til Produkter bord.
offentlig funktion op ()Skema :: Opret ('produkter', funktion (Blueprint $ tabel)
$ tabel-> id ();
$ tabel-> streng ('navn') -> unik ();
$ tabel-> decimal ('pris', 10, 2);
$ tabel-> bigInteger ('fabrikant_id') -> usigneret ();
$ tabel-> fremmed ('fabrikant_id') -> referencer ('id') -> på ('producenter');
$ tabel-> tidsstempler ();
);
Kør følgende migrer kommando for at oprette tabellerne i databasen.
$ php håndværker migrererOpret modeller
Du skal også oprette to modeller, navngivet Fabrikant og Produkt, til de tidligere oprettede tabeller. Kør følgende kommando for at oprette Fabrikant model.
$ php håndværksmærke: modelproducentÅbn modellen fra app mappe og rediger koden med følgende kode. $ udfyldelig bruges til at definere obligatoriske felter i fremstille bord. Det Produkter() metoden bruges til at indstille relationstypen med Produkter bord.
navneområde-app;brug Illuminate \ Database \ Eloquent \ Model;
klasse Producent udvider Model
beskyttet $ fyldbar = [
'navn', 'adresse', 'telefon',
];
produkter til offentlige funktioner ()
returner $ dette-> hasMany ('App \ Product');
Kør følgende kommando for at oprette Produkt model.
Åbn modellen fra app mappe og rediger koden med følgende kode. $ udfyldelig bruges til at definere obligatoriske felter i Produkter bord. Det producenter () metoden bruges til at indstille relationstypen med fremstiller bord.
$ php håndværkerfabrik: model Produktnavneområde-app;
brug Illuminate \ Database \ Eloquent \ Model;
klasse Produkt udvider Model
beskyttet $ fyldbar = [
'navn', 'pris', 'fabrikant_id'
];
producenter af offentlige funktioner ()
returner $ dette-> belongTo ('App \ Producent');
Opret controllere
Kør følgende kommandoer for at oprette ManuController og Produktkontrol.
$ php håndværkerfabrik: controller ManuController$ php håndværkermærke: controller ProductController
CRUD-operationer ved hjælp af Eloquent ORM
CRUD-operationerne vises nedenfor ved først at tilføje metoder til disse to controllere.
Indsættelse af data
Producent tabel
Tilføj Fabrikant model øverst på ManuController. Dernæst tilføj følgende kode inde i ManuController model for at indsætte to poster i fremstiller bord.
offentlig funktion create_data ()Producent :: create ([
'name' => 'ABC Trade',
'adresse' => '34, Mirpur, Dhaka ',
'telefon' => '01878562323'
]);
Producent :: create ([
'name' => 'Rahim Afroze',
'adresse' => '123, Dhanmondi, Dhaka',
'telefon' => '01878562900'
]);
ekko "Producentdata indsat";
Tilføj følgende rute i ruter \ web.php fil til at udføre create_data () metode.
Rute :: get ('manu', '[email protected] _data');Følgende output vises efter indtastning af nedenstående URL i browseren.
http: // localhost: 8000 / manu
Produkt tabel
Tilføj Produkt model øverst på Produktkontrol. Dernæst tilføj følgende kode inde i Produktkontrol at indsætte tre poster i Produkter bord.
offentligt funktionsindeks ()Produkt :: oprette ([
'name' => 'TV 32 Inche',
'pris' => 10000,
'fabrikant_id' => 1
]);
Produkt :: oprette ([
'name' => 'Walton Køleskab',
'pris' => 20000,
'fabrikant_id' => 1
]);
Produkt :: oprette ([
'name' => 'IPS 7832',
'pris' => 25000,
'fabrikant_id' => 2
]);
ekko "Produktdata indsat";
Tilføj følgende rute i ruter \ web.php fil til at udføre indeks() metode.
Rute :: get ('product', '[email protected]');Følgende output vises efter indtastning af nedenstående URL i browseren.
http: // localhost: 8000 / produkt
Vælg Data
Tilføj følgende metode inde i ManuController for at hente alle optegnelser over fremstillingens tabel og relaterede optegnelser over Produkter bord.
offentlig funktion select_data ()$ producenter = Producent :: alle ();
foreach ($ producenter som $ manu)
$ produkter = Produkt :: hvor ('fabrikant_id', $ manu-> id) -> get ();
ekko "Producent: $ manu-> navn
";
foreach ($ produkter som $ pro)
ekko "
Produktnavn: $ pro-> navn
";ekko "
Produktpris: $ pro-> pris
";
Tilføj følgende rute i ruter \ web.php fil til at udføre select_data () metode.
Rute :: get ('product_detail', '[email protected] _data');Følgende output vises efter indtastning af nedenstående URL i browseren.
http: // localhost: 8000 / product_detail
Opdater data
Tilføj følgende metode inde i ManuController for at opdatere registreringen af Produkter tabel, der indeholder id værdi 2.
offentlig funktionsopdateringsdata ()$ produkt = Produkt :: find (2);
ekko "Produktoplysninger inden opdatering:
";
ekko "
Produktnavn: $ produkt-> navn
";ekko "
Produktpris: $ produkt-> pris
";
$ product-> name = 'Walton Blender';
$ produkt-> pris = 1000;
$ produkt-> gem ();
ekko "Produktoplysninger efter opdatering:
";
ekko "
Produktnavn: $ produkt-> navn
";ekko "
Produktpris: $ produkt-> pris
";
Tilføj følgende rute i ruter \ web.php fil til at udføre opdateringsdata () metode.
Rute :: get ('update_data', '[email protected] _data');Følgende output vises efter indtastning af nedenstående URL i browseren.
http: // localhost: 8000 / update_data
Slet data
Tilføj følgende metode inde i ManuController at slette flere poster fra Produkter tabel og en enkelt post fra producenter bord.
offentlig funktion delete_data ()// Slet flere data
Produkt :: ødelægge ([1, 2]);
// Slet enkeltdata
Producent :: ødelægge (1);
ekko "Data slettes.";
Tilføj følgende rute i ruter \ web.php fil til at udføre delete_data () metode.
Rute :: get ('delete_data', '[email protected] _data');Følgende output vises efter indtastning af nedenstående URL i browseren.
http: // localhost: 8000 / delete_data
Video tutorial
Konklusion
Denne tutorial viste dig, hvordan du opretter relationer mellem tabeller, og hvordan du implementerer CRUD-operationer ved hjælp af Eloquent ORM. Selv nye Laravel-brugere vil være i stand til at forstå nogle grundlæggende anvendelser af Eloquent OPM efter at have læst denne vejledning.