Laravel veltalende ORM -opplæring

Laravel veltalende ORM -opplæring
Veltalende ORM (Object Relation Mapper) er enkelt å bruke for brukere som vet hvordan de skal bruke objekter i PHP. ORM er et viktig trekk ved Laravel -rammeverket, ansett som et kraftig og dyrt trekk ved Laravel. ORM jobber med databaseobjekter og brukes til å lage forhold til databasetabeller. Hver tabell i databasen er kartlagt med en bestemt veltalende modell. Modellobjektet inneholder forskjellige metoder for å hente og oppdatere data fra databasetabellen. Veltalende ORM kan brukes med flere databaser ved å implementere ActiveMethod. Denne funksjonen gjør databaserelaterte oppgaver, for eksempel å definere forhold, enklere ved å definere databasetabellene. Denne opplæringen forklarer hvordan du bruker Laravel veltalende ORM i Laravel -prosjektene dine.

Forutsetninger

Før du starter denne opplæringen, må du utføre følgende oppgaver:

  1. Installer en ny kopi av Laravel -prosjektet
  2. Lage databasetilkoblingen

Lag tabeller

For å fullføre trinnene i opplæringen, må du opprette to tabeller i databasen. Dette er produsentens tabell og produktene. Forholdet mellom disse to tabellene vil være henholdsvis en for mange. Kjør følgende kommando for å opprette migrasjonsfilen for å lage strukturen til produsenter bord.

$ PHP Artisan Make: Migration Create_MaMuarurer_table

Åpne migrasjonsfilen fra Database \ migrasjon mappe og endre opp() Metode med følgende kode. Tabellen vil inneholde seks felt: ID, navn, adresse, telefon, opprettet_at og oppdatert_at.

offentlig funksjon opp ()

SCHEMA :: CREATE ('Produsenter', Funksjon (Blueprint $ Table)
$ tabell-> id ();
$ tabell-> String ('name')-> unik ();
$ tabell-> tekst ('adresse');
$ tabell-> streng ('telefon');
$ tabell-> tidsstempler ();
);

Kjør følgende kommando for å opprette en migrasjonsfil for å opprette strukturene til Produkter bord.

$ PHP Artisan Make: Migration Create_Product_Table

Åpne migrasjonsfilen fra Database \ migrasjon mappe og endre opp() Metode med følgende kode. Tabellen vil inneholde syv felt: id, navn, pris, produsent_id, opprettet_at og oppdatert_at. Her er produksjon_id en fremmed nøkkel for Produkter bord.

offentlig funksjon opp ()

Skjema :: Create ('Products', Function (Blueprint $ Table)
$ tabell-> id ();
$ tabell-> String ('name')-> unik ();
$ tabell-> desimal ('pris', 10, 2);
$ tabell-> bigInteger ('produsent_id')-> usignert ();
$ tabell-> utenlandsk ('produsent_id')-> Referanser ('id')-> på ('produsenter');
$ tabell-> tidsstempler ();
);

Kjør følgende migrate -kommando for å opprette tabellene i databasen.

$ php håndverker migrerer

Lage modeller

Du må også lage to modeller, kalt Produsent og Produkt, for de tidligere opprettede tabellene. Kjør følgende kommando for å opprette Produsent modell.

$ PHP Artisan Make: Model Produsent

Åpne modellen fra app mappe og endre koden med følgende kode. $ fylles brukes til å definere de obligatoriske feltene i produksjon bord. De Produkter() metoden brukes til å angi forholdstypen med Produkter bord.

namespace -app;
Bruk Illuminate \ Database \ Eloquent \ Model;
Klasseprodusent utvider modellen

beskyttet $ fillable = [
'navn', 'adresse', 'telefon',
];
offentlige funksjonsprodukter ()

returner $ this-> hasmany ('app \ produkt');

Kjør følgende kommando for å opprette Produkt modell.

Åpne modellen fra app mappe og endre koden med følgende kode. $ fylles brukes til å definere de obligatoriske feltene i Produkter bord. De Produsenter () metoden brukes til å angi forholdstypen med produserer bord.

$ PHP Artisan Make: Model Product
namespace -app;
Bruk Illuminate \ Database \ Eloquent \ Model;
Klasseprodukt utvider modellen

beskyttet $ fillable = [
'Navn', 'Pris', 'Produsent_id'
];
Produsenter av offentlige funksjoner ()

Returner $ this-> hemkeSto ('app \ produsent');

Lag kontrollere

Kjør følgende kommandoer for å opprette Manucontroller og ProductController.

$ PHP Artisan Make: Controller Manucontroller
$ PHP Artisan Make: Controller ProductController

CRUD -operasjoner ved hjelp av veltalende ORM

CRUD -operasjonene vises nedenfor ved først å legge til metoder til disse to kontrollerne.

Sette inn data

Produsentbord

Legg til Produsent modell øverst på Manucontroller. Deretter legger du til følgende kode i Manucontroller modell for å sette inn to poster i produserer bord.

offentlig funksjon create_data ()

Produsent :: Opprett ([
'Navn' => 'ABC Trade',
'adresse' => '34, mirpur, dhaka ',
'Telefon' => '01878562323'
]);
Produsent :: Opprett ([
'Navn' => 'Rahim Afroze',
'Adresse' => '123, Dhanmondi, Dhaka',
'Telefon' => '01878562900'
]);
ekko "produsentdata satt inn";

Legg til følgende rute i Ruter \ Web.PHP fil for å utføre create_data () metode.

Rute :: get ('manu', 'manucontroller@create_data');

Følgende utdata vises etter å ha kommet inn i nettadressen nedenfor i nettleseren.

http: // localhost: 8000/manu

Produktbord

Legg til Produkt modell øverst på ProductController. Deretter legger du til følgende kode i ProductController å sette inn tre poster i Produkter bord.

offentlig funksjonsindeks ()

Produkt :: Opprett ([
'Navn' => 'TV 32 Inche',
'Pris' => 10000,
'Produsent_id' => 1
]);
Produkt :: Opprett ([
'navn' => 'Walton kjøleskap',
'Pris' => 20000,
'Produsent_id' => 1
]);
Produkt :: Opprett ([
'Navn' => 'IPS 7832',
'Pris' => 25000,
'Produsent_id' => 2
]);
ekko "produktdata satt inn";

Legg til følgende rute i Ruter \ Web.PHP fil for å utføre indeks () metode.

Rute :: Get ('Product', 'ProductController@Index');

Følgende utdata vises etter å ha kommet inn i nettadressen nedenfor i nettleseren.

http: // localhost: 8000/produkt

Velg data

Legg til følgende metode i Manucontroller å hente alle poster over Produksjonens tabell og de relaterte postene til Produkter bord.

offentlig funksjon SELECT_DATA ()

$ produsenter = produsent :: alle ();
foreach ($ produsenter som $ manu)
$ produkter = produkt :: hvor ('produsenten_id', $ manu-> id)-> get ();
ekko "Produsent: $ manu-> navn
";
Foreach ($ produkter som $ pro)

ekko "

Produktnavn: $ Pro-> Navn

";
ekko "

Produktpris: $ Pro-> Pris


";


Legg til følgende rute i Ruter \ Web.PHP fil for å utføre SELECT_DATA () metode.

Rute :: Get ('Product_Detail', 'manucontroller@select_data');

Følgende utdata vises etter å ha kommet inn i nettadressen nedenfor i nettleseren.

http: // localhost: 8000/produkt_detail

Oppdater data

Legg til følgende metode i Manucontroller For å oppdatere posten til Produkter Tabell som inneholder id verdi 2.

offentlig funksjon update_data ()

$ produkt = produkt :: finn (2);
ekko "produktdetaljer før oppdatering:
";
ekko "

Produktnavn: $ Produkt-> Navn

";
ekko "

Produktpris: $ Produkt-> Pris


";
$ produkt-> 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 fil for å utføre update_data () metode.

Rute :: get ('update_data', 'manucontroller@update_data');

Følgende utdata vises etter å ha kommet inn i nettadressen nedenfor i nettleseren.

http: // localhost: 8000/update_data

Slett data

Legg til følgende metode i Manucontroller å slette flere poster fra Produkter tabell og en enkelt post fra produsenter bord.

offentlig funksjon Delete_data ()
// Slett flere data
Produkt :: Destroy ([1, 2]);
// Slett enkeltdata
Produsent :: Destroy (1);
ekko "data blir slettet.";

Legg til følgende rute i Ruter \ Web.PHP fil for å utføre delete_data () metode.

Rute :: Get ('Delete_Data', 'Manucontroller@Delete_Data');

Følgende utdata vises etter å ha kommet inn i nettadressen nedenfor i nettleseren.

http: // localhost: 8000/delete_data

Videoopplæring

Konklusjon

Denne opplæringen viste deg hvordan du kan lage forhold mellom tabeller og hvordan du implementerer CRUD -operasjoner ved hjelp av veltalende ORM. Selv nye Laravel -brukere vil kunne forstå noen grunnleggende bruksområder av veltalende OPM etter å ha lest denne opplæringen.