laravel

Laravel Eloquent ORM Tutorial

Laravel Eloquent ORM Tutorial
Eloquent ORM (Object Relation Mapper) er let at bruge for brugere, der ved, hvordan man bruger objekter i PHP. ORM er et vigtigt træk ved Laravel-rammen, betragtes som et stærkt og dyrt træk ved Laravel. ORM arbejder med databaseobjekter og bruges til at skabe forhold til databasetabeller. Hver tabel i databasen er kortlagt med en bestemt veltalende model. Modelobjektet indeholder forskellige metoder til at hente og opdatere data fra databasetabellen. Eloquent ORM kan bruges med flere databaser ved at implementere ActiveMethod. Denne funktion gør database-relaterede opgaver, såsom at definere relationer, enklere ved at definere databasetabellerne. Denne vejledning forklarer, hvordan du anvender Laravel Eloquent ORM i dine Laravel-projekter.

Forudsætninger

Før du starter denne tutorial, skal du udføre følgende opgaver:

  1. Installer en ny kopi af Laravel-projektet
  2. 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 migrerer

Opret 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 Produkt
navneområ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.

Sådan vises FPS-tæller i Linux-spil
Linux-spil fik et stort skub, da Valve annoncerede Linux-support til Steam-klient og deres spil i 2012. Siden da har mange AAA- og indiespil fundet ve...
Sådan downloades og afspilles Sid Meiers Civilization VI på Linux
Introduktion til spillet Civilization 6 er et moderne udtryk for det klassiske koncept, der blev introduceret i serien af ​​Age of Empires-spil. Ideen...
Sådan installeres og afspilles Doom på Linux
Introduktion til undergang Doom-serien opstod i 90'erne efter frigivelsen af ​​den originale Doom. Det var et øjeblikkeligt hit, og fra den tid af har...