laravel

Laravel Eloquent ORM-handledning

Laravel Eloquent ORM-handledning
Eloquent ORM (Object Relation Mapper) är lätt att använda för användare som vet hur man använder objekt i PHP. ORM är ett viktigt inslag i Laravel-ramverket, anses vara en kraftfull och dyr funktion hos Laravel. ORM arbetar med databasobjekt och används för att skapa relationer med databastabeller. Varje tabell i databasen kartläggs med en särskild vältalig modell. Modellobjektet innehåller olika metoder för att hämta och uppdatera data från databastabellen. Eloquent ORM kan användas med flera databaser genom att implementera ActiveMethod. Den här funktionen gör databaserelaterade uppgifter, såsom att definiera relationer, enklare genom att definiera databastabellerna. Denna handledning förklarar hur du använder Laravel Eloquent ORM i dina Laravel-projekt.

Förutsättningar

Innan du börjar denna handledning måste du utföra följande uppgifter:

  1. Installera en ny kopia av Laravel-projektet
  2. Gör databasanslutningen

Skapa tabeller

För att slutföra stegen i självstudien måste du skapa två tabeller i databasen. Dessa är tillverkarens bord och produkttabellen. Förhållandet mellan dessa två tabeller kommer att vara en till många. Kör följande kommando för att skapa migreringsfilen för att skapa strukturen för tillverkare tabell.

$ php hantverkare: migration create_manufacturer_table

Öppna migreringsfilen från databas \ migration mapp och ändra upp() metod med följande kod. Tabellen kommer att innehålla sex fält: ID, namn, adress, telefon, created_at och updated_at.

offentlig funktion upp ()

Schema :: skapa ('tillverkare', funktion (Blueprint $ tabell)
$ tabell-> id ();
$ table-> string ('name') -> unik ();
$ tabell-> text ('adress');
$ table-> string ('phone');
$ tabell-> tidsstämplar ();
);

Kör följande kommando för att skapa en migreringsfil för att skapa strukturerna för Produkter tabell.

$ php artisan make: migration create_product_table

Öppna migreringsfilen från databas \ migration mapp och ändra upp() metod med följande kod. Tabellen innehåller sju fält: ID, namn, pris, tillverkar-ID, skapad_ och uppdaterad_at. Här är tillverkning_id en främmande nyckel för Produkter tabell.

offentlig funktion upp ()

Schema :: skapa ('produkter', funktion (Blueprint $ tabell)
$ tabell-> id ();
$ table-> sträng ('namn') -> unik ();
$ tabell-> decimal ('pris', 10, 2);
$ table-> bigInteger ('manufacturer_id') -> unsigned ();
$ tabell-> utländska ('fabrikant_id') -> referenser ('id') -> på ('tillverkare');
$ tabell-> tidsstämplar ();
);

Kör följande migreringskommando för att skapa tabellerna i databasen.

$ php hantverkare migrerar

Skapa modeller

Du måste också skapa två modeller med namnet Tillverkare och Produkt, för de tidigare skapade tabellerna. Kör följande kommando för att skapa Tillverkare modell.

$ php hantverkare: modelltillverkare

Öppna modellen från app mapp och ändra koden med följande kod. $ fyllbar används för att definiera obligatoriska fält i tillverkning tabell. De Produkter() metoden används för att ställa in relationstyp med Produkter tabell.

namnrymd-app;
använd Illuminate \ Database \ Eloquent \ Model;
klass Tillverkare utökar modell

skyddad $ fyllbar = [
'namn', 'adress', 'telefon',
];
produkter för offentliga funktioner ()

returnera $ this-> hasMany ('App \ Product');

Kör följande kommando för att skapa Produkt modell.

Öppna modellen från app mapp och ändra koden med följande kod. $ fyllbar används för att definiera obligatoriska fält i Produkter tabell. De tillverkare () metoden används för att ställa in relationstyp med tillverkar tabell.

$ php artisan make: modell Produkt
namnrymd-app;
använd Illuminate \ Database \ Eloquent \ Model;
klass Produkt utökar modell

skyddad $ fyllbar = [
'namn', 'pris', 'tillverkare_id'
];
offentliga funktionstillverkare ()

returnera $ this-> belongTo ('App \ Manufacturer');

Skapa styrenheter

Kör följande kommandon för att skapa ManuController och ProductController.

$ php hantverkare: controller ManuController
$ php hantverkare: controller ProductController

CRUD-operationer med Eloquent ORM

CRUD-operationerna visas nedan genom att först lägga till metoder för dessa två styrenheter.

Infoga data

Tillverkarens tabell

Lägg till Tillverkare modellen högst upp på ManuController. Lägg sedan till följande kod inuti ManuController modell för att infoga två poster i tillverkar tabell.

offentlig funktion create_data ()

Tillverkare :: create ([
'name' => 'ABC Trade',
'address' => '34, Mirpur, Dhaka ',
'telefon' => '01878562323'
]);
Tillverkare :: create ([
'name' => 'Rahim Afroze',
'address' => '123, Dhanmondi, Dhaka',
'telefon' => '01878562900'
]);
eko "Tillverkardata infogade";

Lägg till följande rutt i rutter \ webb.php filen för att köra skapa_data () metod.

Rutt :: get ('manu', '[email protected] _data');

Följande utdata visas när du har angett webbadressen nedan i webbläsaren.

http: // localhost: 8000 / manu

Produkttabell

Lägg till Produkt modell högst upp på ProductController. Lägg sedan till följande kod inuti ProductController för att infoga tre poster i Produkter tabell.

offentligt funktionsindex ()

Produkt :: skapa ([
'name' => 'TV 32 Inche',
'pris' => 10000,
'tillverkare_id' => 1
]);
Produkt :: skapa ([
'name' => 'Walton Kylskåp',
'pris' => 20000,
'tillverkare_id' => 1
]);
Produkt :: skapa ([
'name' => 'IPS 7832',
'pris' => 25000,
'tillverkare_id' => 2
]);
eko "Produktdata infogade";

Lägg till följande rutt i rutter \ webb.php filen för att köra index() metod.

Rutt :: get ('product', '[email protected]');

Följande utdata visas när du har angett webbadressen nedan i webbläsaren.

http: // localhost: 8000 / produkt

Välj Data

Lägg till följande metod inuti ManuController för att hämta alla register över tillverkningens tabell och relaterade register över Produkter tabell.

offentlig funktion select_data ()

$ tillverkare = Tillverkare :: all ();
foreach ($ tillverkare som $ manu)
$ products = Product :: where ('manufacturer_id', $ manu-> id) -> get ();
eko "Tillverkare: $ manu-> namn
";
foreach ($ produkter som $ pro)

eko "

Produktnamn: $ pro-> namn

";
eko "

Produktpris: $ pro-> pris


";


Lägg till följande rutt i rutter \ webb.php filen för att köra select_data () metod.

Rutt :: get ('product_detail', '[email protected] _data');

Följande utdata visas när du har angett webbadressen nedan i webbläsaren.

http: // localhost: 8000 / product_detail

Uppdatera data

Lägg till följande metod inuti ManuController för att uppdatera posten för Produkter tabell som innehåller id värde 2.

public function update_data ()

$ produkt = Produkt :: hitta (2);
echo "Produktinformation före uppdatering:
";
eko "

Produktnamn: $ produkt-> namn

";
eko "

Produktpris: $ produkt-> pris


";
$ product-> name = 'Walton Blender';
$ produkt-> pris = 1000;
$ produkt-> spara ();
eko "Produktinformation efter uppdatering:
";
eko "

Produktnamn: $ produkt-> namn

";
eko "

Produktpris: $ produkt-> pris


";

Lägg till följande rutt i rutter \ webb.php filen för att köra uppdatera data() metod.

Rutt :: get ('update_data', '[email protected] _data');

Följande utdata visas när du har angett webbadressen nedan i webbläsaren.

http: // localhost: 8000 / update_data

Ta bort data

Lägg till följande metod inuti ManuController för att radera flera poster från Produkter tabell och en enda post från tillverkare tabell.

offentlig funktion delete_data ()
// Ta bort flera data
Produkt :: förstör ([1, 2]);
// Ta bort enstaka data
Tillverkare :: förstör (1);
echo "Data raderas.";

Lägg till följande rutt i rutter \ webb.php filen för att köra delete_data () metod.

Rutt :: get ('delete_data', '[email protected] _data');

Följande utdata visas när du har angett webbadressen nedan i webbläsaren.

http: // localhost: 8000 / delete_data

Videohandledning

Slutsats

Denna handledning visade dig hur du skapar relationer mellan tabeller och hur du implementerar CRUD-operationer med Eloquent ORM. Även nya Laravel-användare kommer att kunna förstå några grundläggande användningar av Eloquent OPM efter att ha läst denna handledning.

Hur man visar OSD-överlägg i helskärms Linux-appar och -spel
Att spela helskärmsspel eller använda appar i distraktionsfritt helskärmsläge kan avskärma dig från relevant systeminformation som syns i en panel ell...
Topp 5 spelinspelningskort
Vi har alla sett och älskat streaming av spel på YouTube. PewDiePie, Jakesepticye och Markiplier är bara några av de bästa spelarna som har tjänat mil...
Hur man utvecklar ett spel på Linux
För ett decennium sedan skulle inte många Linux-användare förutsäga att deras favoritoperativsystem en dag skulle vara en populär spelplattform för ko...