Grâce à l'expérience réelle du projet, l'auteur a découvert qu'il peut y avoir des exigences similaires en matière d'association de données entre plusieurs modèles, et l'utilisation de relations polymorphes à ce stade peut grandement faciliter la gestion et la maintenance des données. Ainsi, cet article présentera en détail comment définir des relations polymorphes pour plusieurs modèles, en prenant le framework Laravel comme exemple.
1. Que sont les relations polymorphes ?
Avant d'introduire la définition des Relations Polymorphes, vous devez d'abord comprendre son concept. Les relations polymorphes sont un type de relation dans le framework Laravel qui est utilisé pour définir des relations entre un modèle et plusieurs autres modèles. De cette manière, l’association de données entre plusieurs modèles peut être rendue plus flexible et plus efficace.
2. Définition des relations polymorphes
Dans le framework Laravel, les relations polymorphes peuvent être implémentées en définissant la méthode morph et la méthode morphTo. Les étapes spécifiques sont les suivantes :
Dans cet article, nous utiliserons les deux termes « commentaires » et « aime" Prenons deux modèles comme exemple pour illustrer. Les deux modèles doivent associer "utilisateur" et "article". Par conséquent, vous devez d’abord créer un modèle pertinent. Ouvrez la fenêtre de ligne de commande, accédez à l'emplacement du dossier et exécutez la commande suivante :
php artisan make:model Action
De cette façon, un fichier nommé It est le fichier modèle d'Action.
Nous devons créer la méthode morph et la méthode morphTo dans le modèle Action pour implémenter l'interaction entre relation à plusieurs modèles.
① Méthode morph :
public function morph() { return $this->morphTo(); }
Cette méthode est utilisée pour spécifier le modèle qui doit être associé, puis utiliser la méthode morphTo pour l'associer. Dans cet exemple, nous devons associer les deux modèles d'utilisateurs et d'articles, que nous devons définir de la manière suivante :
public function actionable() { return $this->morphTo(); }
② Méthode morphTo :
public function morphTo() { return $this->morphTo('actionable'); }
Cette méthode est utilisé pour associer un modèle spécifique. Dans cet exemple, nous devons associer le modèle aux modèles utilisateur et article, et nous devons les définir de la manière suivante :
public function actions() { return $this->morphMany(Action::class, 'actionable'); }
De cette façon, la définition du modèle Action est terminée.
Afin de permettre à d'autres modèles de s'associer au modèle Action, vous devez ajouter la méthode morphMany à d'autres modèles. Dans cet exemple, nous devons ajouter le code suivant :
use IlluminateDatabaseEloquentRelationsMorphMany; /** * 获取该模型的所有“评论”对象. */ public function comments(): MorphMany { return $this->morphMany(Action::class, 'actionable'); } /** * 获取该模型的所有“点赞”对象. */ public function likes(): MorphMany { return $this->morphMany(Action::class, 'actionable'); }
De cette façon, d'autres modèles sont associés au modèle Action et peuvent volontiers effectuer des opérations sur les données.
3. Résumé
Les relations polymorphes sont une méthode d'association de données efficace dans le framework Laravel, qui peut réduire considérablement la redondance du code et améliorer l'efficacité du fonctionnement du programme. Cet article explique comment définir des relations polymorphes pour plusieurs modèles, dans l'espoir d'aider les lecteurs dans le développement de projets réels.
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!