laravel

Tutoriel ORM Laravel Eloquent

Tutoriel ORM Laravel Eloquent
Eloquent ORM (Object Relation Mapper) est facile à utiliser pour les utilisateurs qui savent utiliser des objets en PHP. L'ORM est une fonctionnalité importante du framework Laravel, considérée comme une fonctionnalité puissante et coûteuse de Laravel. L'ORM fonctionne avec des objets de base de données et est utilisé pour établir des relations avec des tables de base de données. Chaque table de la base de données est mappée 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 base de données. Eloquent ORM peut être utilisé avec plusieurs bases de données en implémentant ActiveMethod. Cette fonctionnalité simplifie les tâches liées à la base de données, telles que la définition des relations, en définissant les tables de la base de données. Ce tutoriel explique comment appliquer Laravel Eloquent ORM dans vos projets Laravel.

Conditions préalables

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

  1. Installer une nouvelle copie du projet Laravel
  2. Établir la connexion à la base de données

Créer des tableaux

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

$ php artisan make:migration create_manufacturer_table

Ouvrez le fichier de migration depuis 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, created_at et updated_at.

fonction publique up()

Schema::create('fabricants', fonction (Blueprint $table)
$table->id();
$table->string('nom')->unique();
$table->text('adresse');
$table->string('téléphone');
$table->timestamps();
);

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

$ php artisan make:migration create_product_table

Ouvrez le fichier de migration depuis le 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, id_fabricant, créé_at et mis à jour_at. Ici, manufacture_id est une clé étrangère pour le des produits tableau.

fonction publique up()

Schema::create('products', function (Blueprint $table)
$table->id();
$table->string('nom')->unique();
$table->decimal('prix', 10, 2);
$table->bigInteger('manufacturer_id')->unsigned();
$table->foreign('manufacturer_id')->references('id')->on('manufacturers');
$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 maquette.

$ php fabrication artisanale: modèle Fabricant

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

application d'espace de noms ;
utilisez Illuminate\Database\Eloquent\Model ;
classe Le fabricant é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 maquette.

Ouvrez le modèle à partir du application dossier et modifiez le code avec le code suivant. $ remplissable permet de définir les champs obligatoires du des produits tableau. le fabricants() méthode est utilisée pour définir le type de relation avec le fabrique tableau.

$ php artisan make:model Produit
application d'espace de noms ;
utilisez Illuminate\Database\Eloquent\Model ;
class Le produit étend le modèle

protégé $ remplissable = [
« nom », « prix », « ID_fabricant »
] ;
fabricants de fonctions publiques()

return $this->belongsTo('App\Manufacturer');

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 utilisant Eloquent ORM

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

Insertion de données

Tableau des fabricants

Ajouter le Fabricant modèle en haut de la ManuController. Ensuite, ajoutez le code suivant dans le ManuController modèle pour insérer deux enregistrements dans le fabrique tableau.

fonction publique create_data()

Fabricant::créer([
'nom' => 'ABC Commerce',
'adresse' => '34, Mirpur, Dacca',
'téléphone' => '01878562233'
]);
Fabricant::créer([
'nom' => 'Rahim Afroze',
'adresse' => '123, Dhanmondi, Dacca',
'téléphone' => '01878562900'
]);
echo "Données constructeur insérées" ;

Ajoutez l'itinéraire suivant dans le itinéraires\web.php fichier pour exécuter le créer_données() méthode.

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

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

http://localhost:8000/manu

Tableau des produits

Ajouter le Produit modèle en haut de la ProductController. Ensuite, ajoutez le code suivant dans le ProductController pour insérer trois enregistrements dans le des produits tableau.

index de fonction publique()

Produit::créer([
'nom' => 'TV 32 pouces',
'prix' => 10000,
'manufacturer_id' => 1
]);
Produit::créer([
'nom' => 'Réfrigérateur Walton',
'prix' => 20000,
'manufacturer_id' => 1
]);
Produit::créer([
'nom' => 'IPS 7832',
'prix' => 25000,
'manufacturer_id' => 2
]);
echo "Données produit insérées" ;

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

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

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

http://localhost:8000/product

Sélectionnez les données

Ajoutez la méthode suivante dans le ManuController pour récupérer tous les enregistrements de la fabrications table et les enregistrements associés de la des produits tableau.

fonction publique select_data()

$manufacturers= Fabricant::all();
foreach ($fabricants as $manu)
$products= Product::where('manufacturer_id', $manu->id)->get();
écho "Fabricant : $manu->nom
";
foreach (produits $ comme $pro)

écho "

Nom du produit : $pro->nom

";
écho "

Prix ​​du produit : $ pro-> prix


";


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

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

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

http://localhost:8000/product_detail

Mettre à jour les données

Ajoutez la méthode suivante dans le ManuController mettre à jour le dossier de la des produits tableau qui contient identifiant valeur 2.

fonction publique update_data()

$product= Produit::find(2);
echo "Détails du produit avant la mise à jour :
";
écho "

Nom du produit : $ produit-> nom

";
écho "

Prix ​​du produit : $ produit -> prix


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

Nom du produit : $ produit-> nom

";
écho "

Prix ​​du produit : $ produit -> prix


";

Ajoutez l'itinéraire suivant dans le itinéraires\web.php fichier pour exécuter le update_data() méthode.

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

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

http://localhost:8000/update_data

Suprimmer les données

Ajoutez la méthode suivante dans le ManuController pour supprimer plusieurs enregistrements du des produits table et un seul enregistrement de la fabricants tableau.

fonction publique delete_data()
//Supprimer plusieurs données
Produit::détruire([1, 2]);
//Supprimer des données uniques
Fabricant::détruire(1);
echo "Les données sont supprimées.";

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

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

La sortie suivante apparaîtra après avoir entré 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 implémenter des opérations CRUD à l'aide d'Eloquent ORM. Même les nouveaux utilisateurs de Laravel pourront comprendre certaines utilisations de base d'Eloquent OPM après avoir lu ce tutoriel.

Émulez les clics de souris en survolant à l'aide de la souris sans clic dans Windows 10
L'utilisation d'une souris ou d'un clavier dans la mauvaise posture d'une utilisation excessive peut entraîner de nombreux problèmes de santé, notamme...
Ajoutez des gestes de souris à Windows 10 à l'aide de ces outils gratuits
Ces dernières années, les ordinateurs et les systèmes d'exploitation ont considérablement évolué. Il fut un temps où les utilisateurs devaient utilise...
Contrôlez et gérez le mouvement de la souris entre plusieurs moniteurs dans Windows 10
Gestionnaire de souris à double affichage vous permet de contrôler et de configurer le mouvement de la souris entre plusieurs moniteurs, en ralentissa...