Conditions préalables
Avant de commencer ce didacticiel, vous devez effectuer les tâches suivantes :
- Installer une nouvelle copie du projet Laravel
- É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_tableOuvrez 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_tableOuvrez 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 migrerCré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 FabricantOuvrez 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 Produitapplication 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.