Forutsetninger
Før du starter denne opplæringen, må du utføre følgende oppgaver:
- Installer en ny kopi av Laravel-prosjektet
- Opprett databasetilkoblingen
Lag bord
For å fullføre trinnene i opplæringen, må du opprette to tabeller i databasen. Dette er produsentens bord og produktbordet. Forholdet mellom disse to tabellene vil være henholdsvis en for mange. Kjør følgende kommando for å opprette migreringsfilen for å lage strukturen til produsenter bord.
$ php håndverksmerke: migrasjon create_manufacturer_tableÅpne migreringsfilen fra database \ migrering mappen og endre opp() metode med følgende kode. Tabellen vil inneholde seks felt: ID, navn, adresse, telefon, created_at og updated_at.
offentlig funksjon opp ()Skjema :: lage ('produsenter', funksjon (Blueprint $ tabell)
$ tabell-> id ();
$ table-> string ('name') -> unik ();
$ tabell-> tekst ('adresse');
$ table-> streng ('telefon');
$ tabell-> tidsstempler ();
);
Kjør følgende kommando for å opprette en migreringsfil for å lage strukturene til Produkter bord.
$ php håndverksmerke: migrasjon create_product_tableÅpne migreringsfilen fra database \ migrering mappen og endre opp() metode med følgende kode. Tabellen vil inneholde syv felt: ID, navn, pris, produsent-ID, opprettet_på og oppdatert_på. Her er manufacturing_id en fremmed nøkkel for Produkter bord.
offentlig funksjon opp ()Schema :: create ('products', function (Blueprint $ table)
$ tabell-> id ();
$ table-> string ('name') -> unik ();
$ tabell-> desimal ('pris', 10, 2);
$ table-> bigInteger ('produsent_id') -> usignert ();
$ table-> utenlandske ('produsent_id') -> referanser ('id') -> på ('produsenter');
$ tabell-> tidsstempler ();
);
Kjør følgende migrer kommando for å opprette tabellene i databasen.
$ php håndverker migrererLag modeller
Du må også opprette to modeller, navngitt Produsent og Produkt, for de tidligere opprettede tabellene. Kjør følgende kommando for å opprette Produsent modell.
$ php håndverkermerke: modellprodusentÅpne modellen fra app mappen og endre koden med følgende kode. $ fyllbar brukes til å definere obligatoriske felt i produksjon bord. De Produkter() metoden brukes til å angi relasjonstypen med Produkter bord.
navneområdet App;bruk Illuminate \ Database \ Eloquent \ Model;
klasse Produsent utvider modell
beskyttet $ fyllbar = [
'navn', 'adresse', 'telefon',
];
produkter for offentlige funksjoner ()
returner $ dette-> hasMany ('App \ Product');
Kjør følgende kommando for å opprette Produkt modell.
Åpne modellen fra app mappen og endre koden med følgende kode. $ fyllbar brukes til å definere obligatoriske felt i Produkter bord. De produsenter () metoden brukes til å angi relasjonstypen med produserer bord.
$ php artisan make: modell Produktnavneområdet App;
bruk Illuminate \ Database \ Eloquent \ Model;
klasse Produkt utvider modell
beskyttet $ fyllbar = [
'navn', 'pris', 'produsent_id'
];
produsenter av offentlige funksjoner ()
returner $ dette-> belongTo ('App \ Manufacturer');
Lag kontrollere
Kjør følgende kommandoer for å opprette ManuController og ProductController.
$ php kunsthåndverk: kontroller ManuController$ php håndverksmerke: controller ProductController
CRUD-operasjoner ved bruk av Eloquent ORM
CRUD-operasjonene vises nedenfor ved først å legge til metoder for disse to kontrollerne.
Sette inn data
Produsent Tabell
Legg til Produsent modellen på toppen av ManuController. Deretter legger du til følgende kode i ManuController modell for å sette inn to poster i produserer bord.
offentlig funksjon create_data ()Produsent :: create ([
'name' => 'ABC Trade',
'adresse' => '34, Mirpur, Dhaka ',
'telefon' => '01878562323'
]);
Produsent :: create ([
'name' => 'Rahim Afroze',
'adresse' => '123, Dhanmondi, Dhaka',
'telefon' => '01878562900'
]);
ekko "Produsentdata satt inn";
Legg til følgende rute i ruter \ web.php filen for å utføre create_data () metode.
Rute :: get ('manu', '[email protected] _data');Følgende utdata vises etter at du har angitt nettadressen nedenfor i nettleseren.
http: // localhost: 8000 / manu
Produkt Tabell
Legg til Produkt modell på toppen av ProductController. Deretter legger du til følgende kode i ProductController å sette inn tre poster i Produkter bord.
offentlig funksjonsindeks ()Produkt :: lage ([
'name' => 'TV 32 Inche',
'pris' => 10000,
'produsent_id' => 1
]);
Produkt :: lage ([
'name' => 'Walton Kjøleskap',
'pris' => 20000,
'produsent_id' => 1
]);
Produkt :: lage ([
'name' => 'IPS 7832',
'pris' => 25000,
'produsent_id' => 2
]);
ekko "Produktdata satt inn";
Legg til følgende rute i ruter \ web.php filen for å utføre indeks () metode.
Rute :: get ('produkt', '[e-postbeskyttet]');Følgende utdata vises når du har angitt URL-en nedenfor i nettleseren.
http: // localhost: 8000 / produkt
Velg Data
Legg til følgende metode inne i ManuController for å hente alle poster av produksjonens tabell og tilhørende poster for Produkter bord.
offentlig funksjon select_data ()$ produsenter = produsent :: all ();
foreach ($ produsenter som $ manu)
$ produkter = Produkt :: hvor ('produsent_id', $ manu-> id) -> get ();
ekko "Produsent: $ manu-> name
";
foreach ($ produkter som $ pro)
ekko "
Produktnavn: $ pro-> navn
";ekko "
Produktpris: $ pro-> pris
";
Legg til følgende rute i ruter \ web.php filen for å utføre select_data () metode.
Rute :: get ('product_detail', '[email protected] _data');Følgende utdata vises etter at du har angitt nettadressen nedenfor i nettleseren.
http: // localhost: 8000 / product_detail
Oppdater data
Legg til følgende metode inne i ManuController for å oppdatere posten til Produkter tabell som inneholder id verdi 2.
offentlig funksjon oppdateringsdata ()$ produkt = Produkt :: finn (2);
ekko "Produktdetaljer før oppdatering:
";
ekko "
Produktnavn: $ produkt-> navn
";ekko "
Produktpris: $ produkt-> pris
";
$ product-> name = 'Walton Blender';
$ produkt-> pris = 1000;
$ produkt-> lagre ();
ekko "Produktdetaljer etter oppdatering:
";
ekko "
Produktnavn: $ produkt-> navn
";ekko "
Produktpris: $ produkt-> pris
";
Legg til følgende rute i ruter \ web.php filen for å utføre oppdateringsdata () metode.
Rute :: get ('update_data', '[email protected] _data');Følgende utdata vises når du har angitt URL-en nedenfor i nettleseren.
http: // localhost: 8000 / update_data
Slett data
Legg til følgende metode inne i ManuController for å slette flere poster fra Produkter tabell og en enkelt plate fra produsenter bord.
offentlig funksjon delete_data ()// Slett flere data
Produkt :: ødelegge ([1, 2]);
// Slett enkeltdata
Produsent :: ødelegge (1);
ekko "Data slettes.";
Legg til følgende rute i ruter \ web.php filen for å utføre delete_data () metode.
Rute :: get ('delete_data', '[email protected] _data');Følgende utdata vises når du har angitt URL-en nedenfor i nettleseren.
http: // localhost: 8000 / delete_data
Videoopplæring
Konklusjon
Denne veiledningen viste deg hvordan du oppretter relasjoner mellom tabeller og hvordan du implementerer CRUD-operasjoner ved hjelp av Eloquent ORM. Selv nye Laravel-brukere vil kunne forstå noen grunnleggende bruksområder for Eloquent OPM etter å ha lest denne veiledningen.