Förutsättningar
Innan du börjar denna handledning måste du utföra följande uppgifter:
- Installera en ny kopia av Laravel-projektet
- 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 migrerarSkapa 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 Produktnamnrymd-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.