Laravel eloquent ORM -Tutorial

Laravel eloquent ORM -Tutorial
Eloquent orm (Object Relation MAKPER) ist für Benutzer, die wissen, wie sie Objekte in PHP verwenden, einfach zu verwenden. Das ORM ist ein wichtiges Merkmal des Laravel -Frameworks, das als leistungsstarkes und teures Merkmal von Laravel angesehen wird. Das ORM arbeitet mit Datenbankobjekten und wird verwendet, um Beziehungen zu Datenbanktabellen herzustellen. Jede Tabelle der Datenbank wird mit einem bestimmten beredten Modell abgebildet. Das Modellobjekt enthält verschiedene Methoden zum Abrufen und Aktualisieren von Daten aus der Datenbanktabelle. Eloquent orm kann mit mehreren Datenbanken verwendet werden, indem Activemethod implementiert wird. Diese Funktion ermöglicht datenbankbezogene Aufgaben, z. B. die Definieren von Beziehungen, einfacher durch Definieren der Datenbanktabellen. In diesem Tutorial wird erläutert.

Voraussetzungen

Bevor Sie dieses Tutorial beginnen, müssen Sie die folgenden Aufgaben ausführen:

  1. Installieren Sie eine neue Kopie des Laravel -Projekts
  2. Machen Sie die Datenbankverbindung

Tische erstellen

Um die Schritte des Tutorials auszuführen, müssen Sie zwei Tabellen in der Datenbank erstellen. Dies sind die Tisch des Herstellers und die Produkttabelle. Die Beziehung zwischen diesen beiden Tabellen wird eins zu vielen betragen. Führen Sie den folgenden Befehl aus, um die Migrationsdatei zum Erstellen der Struktur von zu erstellen Hersteller Tisch.

$ php artisan make: migration create_manufacturer_table

Öffnen Sie die Migrationsdatei von Datenbank \ Migration Ordner und ändern Sie die hoch() Methode mit dem folgenden Code. Die Tabelle enthält sechs Felder: ID, Name, Adresse, Telefon, erstellt_at und updated_at.

öffentliche Funktion ()

Schema :: Create ('Hersteller', Funktion (Blueprint $ table)
$ table-> id ();
$ table-> string ('name')-> eindeutig ();
$ table-> text ('Adresse');
$ table-> String ('Telefon');
$ table-> timestemps ();
);

Führen Sie den folgenden Befehl aus, um eine Migrationsdatei zum Erstellen der Strukturen der zu erstellen Produkte Tisch.

$ php artisan make: migration create_product_table

Öffnen Sie die Migrationsdatei von der Datenbank \ Migration Ordner und ändern Sie die hoch() Methode mit dem folgenden Code. Die Tabelle enthält sieben Felder: ID, Name, Preis, Hersteller_ID, Created_at und Updatated_at. Hier ist Manufacture_ID ein fremder Schlüssel für die Produkte Tisch.

öffentliche Funktion ()

Schema :: Create ('Produkte', Funktion (Blueprint $ Tabelle)
$ table-> id ();
$ table-> string ('name')-> eindeutig ();
$ table-> decimal ('Preis', 10, 2);
$ table-> bigInteger ('Hersteller_ID')-> unsigned ();
$ table-> fremd ('Hersteller_id')-> Referenzen ('ID')-> on ('Hersteller');
$ table-> timestemps ();
);

Führen Sie den folgenden Migrate -Befehl aus, um die Tabellen in der Datenbank zu erstellen.

$ php Artisan migrieren

Modelle erstellen

Sie müssen auch zwei Modelle erstellen, benannt Hersteller Und Produkt, Für die zuvor erstellten Tabellen. Führen Sie den folgenden Befehl aus, um die zu erstellen Hersteller Modell.

$ Php Artisan Make: Modellhersteller

Öffnen Sie das Modell aus dem App Ordner und ändern Sie den Code mit dem folgenden Code. $ fillbar wird verwendet, um die obligatorischen Felder der zu definieren Herstellung Tisch. Der Produkte() Methode wird verwendet, um den Beziehungstyp mit dem festzulegen Produkte Tisch.

Namespace App;
Verwenden Sie Illuminate \ Database \ eloquent \ Modell;
Der Klassenhersteller erweitert das Modell

geschützt $ fillbar = [
"Name", "Adresse", "Telefon",
];
öffentliche Funktionsprodukte ()

$ this-> hasmany zurückgeben ('App \ product');

Führen Sie den folgenden Befehl aus, um die zu erstellen Produkt Modell.

Öffnen Sie das Modell aus dem App Ordner und ändern Sie den Code mit dem folgenden Code. $ fillbar wird verwendet, um die obligatorischen Felder der zu definieren Produkte Tisch. Der Hersteller () Methode wird verwendet, um den Beziehungstyp mit dem festzulegen stellt her Tisch.

$ php Artisan Make: Modellprodukt
Namespace App;
Verwenden Sie Illuminate \ Database \ eloquent \ Modell;
Klassenprodukt erweitert das Modell

geschützt $ fillbar = [
'Name', 'Preis', 'Hersteller_ID'
];
öffentliche Funktion Hersteller ()

return $ this->

Controller erstellen

Führen Sie die folgenden Befehle aus, um zu erstellen Manucontroller Und ProductController.

$ Php Artisan Make: Controller Manucontroller
$ Php Artisan Make: Controller ProductController

CRUD -Operationen mit eloquenten ORM

Die CRUD -Operationen werden nachstehend angezeigt, indem zuerst Methoden zu diesen beiden Controllern hinzugefügt werden.

Daten einfügen

Herstellertisch

Ergänzen Sie die Hersteller Modell oben am Manucontroller. Fügen Sie als Nächstes den folgenden Code in die Manucontroller Modell zum Einfügen von zwei Datensätzen in die stellt her Tisch.

öffentliche Funktion create_data ()

Hersteller :: Create ([
'Name' => 'ABC Trade',
'Adresse' => '34, Mirpur, Dhaka '',
'Telefon' => '01878562323'
]);
Hersteller :: Create ([
'Name' => 'Rahim Afroze',
'Adresse' => '123, Dhanmondi, Dhaka' ',
'Telefon' => '01878562900'
]);
echo "Herstellerdaten eingefügt";

Fügen Sie die folgende Route in die hinzu Routen \ Web.Php Datei, um die auszuführen create_data () Methode.

Route :: Get ('Manu', 'ManuController@create_data');

Die folgende Ausgabe wird nach der Eingabe der URL unten im Browser angezeigt.

http: // localhost: 8000/Manu

Produkttabelle

Ergänzen Sie die Produkt Modell oben am ProductController. Fügen Sie als Nächstes den folgenden Code in die ProductController Um drei Datensätze in die einzulegen Produkte Tisch.

öffentlicher Funktionsindex ()

Produkt :: Create ([
'Name' => 'TV 32 Zoll',
'Preis' => 10000,
'Hersteller_id' => 1
]);
Produkt :: Create ([
'Name' => 'Walton Kühlschrank',
'Preis' => 20000,
'Hersteller_id' => 1
]);
Produkt :: Create ([
'Name' => 'IPS 7832',
'Preis' => 25000,
'Hersteller_id' => 2
]);
echo "Produktdaten eingefügt";

Fügen Sie die folgende Route in die hinzu Routen \ Web.Php Datei, um die auszuführen Index() Methode.

Route :: Get ('Product', 'ProductController@index');

Die folgende Ausgabe wird nach der Eingabe der URL unten im Browser angezeigt.

http: // localhost: 8000/Produkt

Daten auswählen

Fügen Sie die folgende Methode innerhalb der hinzu Manucontroller alle Aufzeichnungen von abrufen die Herstellungs Tabelle und die zugehörigen Aufzeichnungen der Produkte Tisch.

öffentliche Funktion select_data ()

$ Hersteller = Hersteller :: All ();
foreach ($ Hersteller als $ Manu)
$ products = product :: where ('Hersteller_id', $ Manu-> id)-> get ();
Echo "Hersteller: $ Manu-> Name
";
foreach ($ products as $ pro)

Echo "

Produktname: $ pro-> Name

";
Echo "

Produktpreis: $ pro-> Preis


";


Fügen Sie die folgende Route in die hinzu Routen \ Web.Php Datei, um die auszuführen select_data () Methode.

Route :: get ('product_detail', 'ManuController@select_data');

Die folgende Ausgabe wird nach der Eingabe der URL unten im Browser angezeigt.

http: // localhost: 8000/product_detail

Daten aktualisieren

Fügen Sie die folgende Methode innerhalb der hinzu Manucontroller um den Datensatz der Aktualisierung des Produkte Tabelle, die enthält Ausweis Wert 2.

öffentliche Funktion update_data ()

$ product = product :: find (2);
Echo "Produktdetails vor dem Update:
";
Echo "

Produktname: $ Produkt-> Name

";
Echo "

Produktpreis: $ Produkt-> Preis


";
$ product-> name = 'Walton Blender';
$ produkt-> preis = 1000;
$ product-> save ();
Echo "Produktdetails nach dem Update:
";
Echo "

Produktname: $ Produkt-> Name

";
Echo "

Produktpreis: $ Produkt-> Preis


";

Fügen Sie die folgende Route in die hinzu Routen \ Web.Php Datei, um die auszuführen Daten aktualisieren() Methode.

Route :: get ('update_data', 'ManuController@update_data');

Die folgende Ausgabe wird nach der Eingabe der URL unten im Browser angezeigt.

http: // localhost: 8000/update_data

Daten löschen

Fügen Sie die folgende Methode innerhalb der hinzu Manucontroller um mehrere Datensätze aus dem zu löschen Produkte Tabelle und ein einzelner Datensatz aus dem Hersteller Tisch.

öffentliche Funktion Delete_data ()
// Mehrere Daten löschen
Produkt :: zerstören ([1, 2]);
// einzelne Daten löschen
Hersteller :: Zerstören (1);
Echo "Daten werden gelöscht.";

Fügen Sie die folgende Route in die hinzu Routen \ Web.Php Datei, um die auszuführen Daten löschen() Methode.

Route :: get ('Delete_data', 'ManuController@Delete_data');

Die folgende Ausgabe wird nach der Eingabe der URL unten im Browser angezeigt.

http: // localhost: 8000/delete_data

Videoanleitung

Abschluss

Dieses Tutorial hat Ihnen gezeigt, wie Sie Beziehungen zwischen Tabellen und wie Sie CRUD -Operationen mit eloquenten ORM implementieren können. Selbst neue Laravel -Benutzer können einige grundlegende Verwendungen von eloquentem OPM verstehen, nachdem Sie dieses Tutorial gelesen haben.