Dans Laravel, nous avons souvent besoin d'utiliser des bases de données relationnelles pour stocker et gérer des données, et les relations un-à-plusieurs sont les plus courantes. Une relation un-à-plusieurs fait référence à une relation dans laquelle un modèle a plusieurs modèles associés. Elle est généralement utilisée pour mettre en ?uvre certains scénarios commerciaux courants, tels qu'un utilisateur correspondant à plusieurs commandes ou un cours correspondant à plusieurs étudiants.
Dans Laravel, nous pouvons utiliser Eloquent ORM pour implémenter une requête de relation un-à-plusieurs. Ci-dessous, je présenterai en détail comment utiliser le modèle Eloquent dans Laravel pour interroger la relation un-à-plusieurs entre trois tables.
- Concevoir trois tables
Tout d'abord, nous devons concevoir trois tables, à savoir la table principale, la sous-table et la table d'association de clé étrangère de sous-table. Voici la conception de l'exemple de table?:
Table principale?: utilisateurs
id | name | |
---|---|---|
1 | Tom | tom@laravel.com |
2 | Jerry | jerry@laravel.com |
3 | Bob | bob@laravel.com |
Sous-tableau : commandes
id | order_no | user_id |
---|---|---|
1 | 1001 | 1 |
2 | 1002 | 2 |
3 | 1003 | 3 |
4 | 1004 | 1 |
Sous-tableau table associée aux clés étrangères?:order_items
id | order_id | product_name |
---|---|---|
1 | 1 | apple |
2 | 1 | banane |
3 | 2 | poire |
4 | 4 | orange |
5 | 4 | grape |
- Création de modèles Laravel
Dans Laravel, nous devons créer trois modèles, correspondant à trois tableaux respectivement. Lors de la création d'un modèle, nous devons définir les relations entre les modèles.
Modèle de table principale?: Utilisateur
class User extends Model { public function orders() { return $this->hasMany(Order::class); } }
Modèle de sous-table?: Order
class Order extends Model { public function user() { return $this->belongsTo(User::class); } public function items() { return $this->hasMany(OrderItem::class); } }
Modèle de table associé à la clé étrangère de sous-table?: OrderItem
class OrderItem extends Model { public function order() { return $this->belongsTo(Order::class); } }
- Requête d'une relation un-à-plusieurs
Dans Laravel, nous pouvons utiliser Eloquent ORM pour implémentez une requête de relation un-à-plusieurs. Ce qui suit est un exemple de code pour interroger toutes les commandes d'un utilisateur et tous les articles de commande passés par lui?:
$user = User::find(1); foreach ($user->orders as $order) { echo $order->order_no; foreach ($order->items as $item) { echo $item->product_name; } }
Le code ci-dessus affichera toutes les commandes de l'utilisateur Tom et tous les articles de commande passés par lui.
Nous pouvons également utiliser directement la méthode de préchargement associée d'Eloquent pour interroger un utilisateur, ses commandes et tous les éléments de campagne placés sous lui?:
$user = User::with('orders.items')->find(1); foreach ($user->orders as $order) { echo $order->order_no; foreach ($order->items as $item) { echo $item->product_name; } }
Le code ci-dessus affichera toutes les commandes de l'utilisateur Tom et tous les éléments de commande placés sous elles, et Par rapport à la méthode ci-dessus, cette méthode offre de meilleures performances.
- Résumé
Dans Laravel, nous pouvons utiliser Eloquent ORM pour implémenter très facilement une requête de relation un-à-plusieurs. Tant que la relation est définie dans le modèle, vous pouvez facilement obtenir toutes les données associées du modèle spécifié. Dans le même temps, nous pouvons également utiliser la méthode de préchargement associée pour optimiser les performances des requêtes et rendre nos applications plus efficaces et plus stables.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Inlaravel, Politicys organisationAutorizationLogicFormodelactions.1.PoliciesAreclasseswithMethodsLikeView, Create, Update etdeleTeTeTrueTrueorfalSebaseDonUserperMissions.2.ToregisterApolicy, MaptheModeltOtspolicyInThes.2.

Oui, YouCaninstallLaravelonanyOperatingSystemByfollowingTheSesteps: 1. InstallphpanDrequedExtensionsLikembstring, OpenSSL etxmlusingToolsLILLOxAmPonWindows, HomebrewonMacos, oraptonlinux; 2.InstallPoser, usinganinstalleronwindowswordrsormialCommandonmacer, usinganinstalleronwindowswordrsormiralcommandonmacer, usinganinstalleronwindowswordrsormiralcommandonmacer, usinganinstalleronwindowswordrsormiralcommandonmacer, usinganinstalleronwindowsterminbcommandonson

Le r?le principal du contr?leur dans Laravel est de traiter les demandes HTTP et de retourner les réponses pour garder le code soigné et maintenable. En concentrant la logique de demande pertinente dans une classe, le contr?leur simplifie le fichier de routage, tel que la mise en ?uvre de l'affichage du profil utilisateur, de l'édition et de la suppression des opérations dans différentes méthodes d'utilisation UserController. La création d'un contr?leur peut être implémentée via la commande artisan phartisanmake: ControllerSerController, tandis que le contr?leur de ressource est généré à l'aide de l'option --Resource, couvrant les méthodes pour les opérations de crud standard. Ensuite, vous devez lier le contr?leur dans l'itinéraire, comme Route :: get ('/ user / {id

Laravel permet des vues d'authentification personnalisées et de la logique en rempla?ant le stub et le contr?leur par défaut. 1. Pour personnaliser la vue d'authentification, utilisez la commande phPartisanVendor: publish-tag = laravel-auth pour copier le modèle de lame par défaut dans le répertoire Ressources / vues / auth et modifier, tels que l'ajout de la case "Termes d'utilisation". 2. Pour modifier la logique d'authentification, vous devez ajuster les méthodes de registreController, LoginController et ResetPasswordContrller, telles que la mise à jour de la méthode Validator () pour vérifier le champ ajouté, ou réécrire R

LaravelprovidesRobustToolsForvalidateFormData.1.Assure de la basicValidationCanbedOneusingTheValidate () MethodinControllers, garantissant à la manière

SELECTINGENOLLYNEEDEDCOLUMNSIMPROVESPROPORMANCEBYDRADUCTINGSOURCEUSAGE.1.FetchingAllColumnSincreasesMemory, Network, andProcessingOverhead.2.UncesseyDatareTevalPreventSeffectivedIndexuse, Raissediski / O, andSlowsquereyExecution.3.Tooptimize, identifierrequi

InLaravelbladeTemplates, utilisez {{{...}}} todisplayrawhtml.bladeescapescontent within {{...}} usinghtmlSpecialChars () topreventxsattac Ks.Comment, TriplebracesByPasscaping, renduhtmlas-is.Thisshisshouldsparement et nettement envers

TomockDependcesvelysEffectivelyInLaravel, UsedPedencyInjectionForServices, devrait-onceive () forfacades, andmockeryforcomplexcases.
