Tutoriel Laravel Eloquent Orm

Tutoriel Laravel Eloquent Orm
Eloquent ORM (Mappeur de relation d'objet) est facile à utiliser pour les utilisateurs qui savent utiliser des objets en PHP. L'ORM est une caractéristique importante du cadre Laravel, considéré comme une caractéristique puissante et coûteuse de Laravel. L'ORM fonctionne avec les objets de base de données et est utilisé pour établir des relations avec les tables de base de données. Chaque tableau de la base de données est cartographié avec un modèle éloquent particulier. L'objet modèle contient diverses méthodes pour récupérer et mettre à jour les données de la table de la base de données. L'ORM éloquent peut être utilisé avec plusieurs bases de données en implémentant ActiveMethod. Cette fonctionnalité rend les tâches liées à la base de données, telles que la définition des relations, plus simples en définissant les tables de base de données. Ce tutoriel explique comment appliquer Laravel Eloquent Orm dans vos projets Laravel.

Conditions préalables

Avant de commencer ce tutoriel, vous devez effectuer les tâches suivantes:

  1. Installez une nouvelle copie du projet Laravel
  2. Faire la connexion de la base de données

Créer des tables

Pour terminer les étapes du tutoriel, vous devez créer deux tables dans la base de données. Ce sont la table du fabricant et la table des produits. La relation entre ces deux tables sera une à plusieurs, respectivement. Exécutez la commande suivante pour créer le fichier de migration pour créer la structure de fabricants tableau.

$ PHP Artisan Make: Migration Create_Manufacturer_Table

Ouvrir le fichier de migration à partir de base de données \ migration dossier et modifiez le en haut() Méthode avec le code suivant. Le tableau contiendra six champs: ID, nom, adresse, téléphone, créé_at et mise à jour_at.

Fonction publique UP ()

Schéma :: Create ('Manufacturers', fonction (Table Blueprint $)
$ table-> id ();
$ table-> String ('name') -> UNIQUE ();
$ table-> text ('adresse');
$ table-> String ('téléphone');
$ Table-> TimeStamps ();
);

Exécutez la commande suivante pour créer un fichier de migration pour créer les structures du des produits tableau.

$ php artisan make: migration create_product_table

Ouvrez le fichier de migration à partir du base de données \ migration dossier et modifiez le en haut() Méthode avec le code suivant. Le tableau contiendra sept champs: id, nom, prix, fabricant_id, créé_at et updated_at. Ici, manufacture_id est une clé étrangère pour le des produits tableau.

Fonction publique UP ()

Schéma :: Create ('Products', fonction (Table Blueprint $)
$ table-> id ();
$ table-> String ('name') -> UNIQUE ();
$ table-> décimal ('prix', 10, 2);
$ table-> bigInteger ('manufacturer_id') -> unsigned ();
$ Table-> Foreign ('Manufacturer_id') -> Références ('id') -> on ('fabricants');
$ Table-> TimeStamps ();
);

Exécutez la commande migrate suivante pour créer les tables dans la base de données.

$ php artisan migrer

Créer des modèles

Vous devez également créer deux modèles, nommés Fabricant et Produit, pour les tables précédemment créées. Exécutez la commande suivante pour créer le Fabricant modèle.

$ PHP Artisan Make: Modèle Fabricant

Ouvrez le modèle du appliquer dossier et modifiez le code avec le code suivant. $ à remplissage est utilisé pour définir les champs obligatoires du fabrication tableau. Le des produits() la méthode est utilisée pour définir le type de relation avec le des produits tableau.

application d'espace de noms;
Utiliser illuminate \ database \ eloquent \ modèle;
Le fabricant de classe étend le modèle

protégé $ remplissable = [
«nom», «adresse», «téléphone»,
]]
Produits de fonction publique ()

return $ this-> hasmany ('app \ product');

Exécutez la commande suivante pour créer le Produit modèle.

Ouvrez le modèle du appliquer dossier et modifiez le code avec le code suivant. $ à remplissage est utilisé pour définir les champs obligatoires du des produits tableau. Le fabricants () la méthode est utilisée pour définir le type de relation avec le fabrication tableau.

$ PHP Artisan Make: Model Product
application d'espace de noms;
Utiliser illuminate \ database \ eloquent \ modèle;
Le produit de classe étend le modèle

protégé $ remplissable = [
«nom», «prix», «fabricant_id»
]]
Fabricants de fonctions publiques ()

retourner $ this-> appartenance ('app \ fabricant');

Créer des contrôleurs

Exécutez les commandes suivantes pour créer Manucontroller et ProductController.

$ PHP Artisan Make: Controller ManuController
$ PHP Artisan Make: Controller ProductController

Opérations CRUD à l'aide d'Orm éloquent

Les opérations CRUD sont présentées ci-dessous en ajoutant d'abord des méthodes à ces deux contrôleurs.

Insérer des données

Table du fabricant

Ajouter le Fabricant modèle en haut du Manucontroller. Ensuite, ajoutez le code suivant à l'intérieur du Manucontroller modèle pour insérer deux enregistrements dans le fabrication tableau.

fonction publique create_data ()

Fabricant :: Créer ([
'nom' => 'ABC Trade',
'adresse' => '34, mirpur, dhaka ',
'téléphone' => '01878562323'
]));
Fabricant :: Créer ([
'name' => 'Rahim Afroze',
'adresse' => '123, Dhanmondi, Dhaka',
'téléphone' => '01878562900'
]));
Echo "Données du fabricant insérées";

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour exécuter le create_data () méthode.

Route :: get ('manu', 'manuController @ create_data');

La sortie suivante apparaîtra après être entré dans l'URL ci-dessous dans le navigateur.

http: // localhost: 8000 / manu

Table de produits

Ajouter le Produit modèle en haut du ProductController. Ensuite, ajoutez le code suivant à l'intérieur du ProductController pour insérer trois enregistrements dans le des produits tableau.

Index de fonction publique ()

Produit :: Create ([
'name' => 'TV 32 pouces',
'Price' => 10000,
'fabricrant_id' => 1
]));
Produit :: Create ([
'nom' => 'walton réfrigérateur',
'Price' => 20000,
'fabricrant_id' => 1
]));
Produit :: Create ([
'name' => 'ips 7832',
'Price' => 25000,
'fabricrant_id' => 2
]));
Echo "Données de produit insérées";

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour exécuter le indice() méthode.

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

La sortie suivante apparaîtra après être entré dans l'URL ci-dessous dans le navigateur.

http: // localhost: 8000 / produit

Sélectionner des données

Ajouter la méthode suivante à l'intérieur du Manucontroller pour récupérer tous les enregistrements de la fabricationla table S et les enregistrements connexes du des produits tableau.

fonction publique select_data ()

$ fabricants = fabricant :: all ();
foreach ($ fabricants comme $ manu)
$ Products = Product :: Where ('Manufacturer_id', $ manu-> id) -> get ();
écho "Fabricant: $ manu-> nom
"
foreach ($ Products as $ pro)

écho "

Nom du produit: $ pro-> nom

"
écho "

Prix ​​du produit: $ pro-> prix


"


Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour exécuter le select_data () méthode.

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

La sortie suivante apparaîtra après être entré dans l'URL ci-dessous dans le navigateur.

http: // localhost: 8000 / product_detail

Mettre à jour les données

Ajouter la méthode suivante à l'intérieur du Manucontroller Pour mettre à jour l'enregistrement du des produits table qui contient identifiant valeur 2.

Fonction publique Update_data ()

$ Product = Product :: Find (2);
Echo "Détails du produit avant la mise à jour:
"
écho "

Nom du produit: $ Product-> Nom

"
écho "

Prix ​​du produit: $ Product-> Prix


"
$ Product-> name = 'Walton Blender';
$ product-> prix = 1000;
$ product-> sauvegarder ();
Echo "Détails du produit après la mise à jour:
"
écho "

Nom du produit: $ Product-> Nom

"
écho "

Prix ​​du produit: $ Product-> Prix


"

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour exécuter le Update_data () méthode.

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

La sortie suivante apparaîtra après être entré dans l'URL ci-dessous dans le navigateur.

http: // localhost: 8000 / update_data

Suprimmer les données

Ajouter la méthode suivante à l'intérieur du Manucontroller pour supprimer plusieurs enregistrements du des produits table et un seul enregistrement du fabricants tableau.

fonction publique Delete_data ()
// supprimer plusieurs données
Produit :: Destroy ([1, 2]);
// supprimer des données uniques
Fabricant :: Destroy (1);
Echo "Les données sont supprimées."

Ajouter l'itinéraire suivant dans le routes \ web.php fichier pour exécuter le Suprimmer les données() méthode.

Route :: get ('Delete_data', 'manuController @ delete_data');

La sortie suivante apparaîtra après être entré dans l'URL ci-dessous dans le navigateur.

http: // localhost: 8000 / delete_data

Didacticiel vidéo

Conclusion

Ce tutoriel vous a montré comment créer des relations entre les tables et comment mettre en œuvre des opérations CRUD à l'aide de l'ORM éloquent. Même les nouveaux utilisateurs de Laravel pourront comprendre certaines utilisations de base de l'OPM éloquent après avoir lu ce tutoriel.