Maison >développement back-end >tutoriel php >Explication détaillée des deux méthodes de Yii2 hasOne() et hasMany() pour implémenter une association à trois tables
Cet article présente principalement les méthodes Yii2 hasOne(), hasMany() (deux méthodes) pour réaliser une association à trois tables. Il est très bon et a une valeur de référence. Les amis dans le besoin peuvent s'y référer
Contexte :
Il existe deux instances de groupe et d'utilisateur.
Un groupe peut avoir plusieurs utilisateurs, et un utilisateur peut également appartenir à plusieurs groupes (relation plusieurs-à-plusieurs)
La table GroupUserRelation est utilisée pour lier la relation entre les membres du groupe (en utilisant id Binding)
Les champs ont id, group_id, user_id
Table utilisateur existante, vous devez obtenir les informations de tous les groupes d'utilisateurs auxquels il appartient, vous devez utiliser hasMany () Association multi-tables.
User.id => GroupUserRelation.user_id GroupUserRelation.group_id => Group.id
Méthode 1
public function getGroup() { return $this->hasMany(Group::className(), ['id' => 'group_id']) ->viaTable(GroupUserRelation::tableName(), ['user_id' => 'id']); }
Méthode 2
public function getGroup() { return $this->hasMany(Group::className(), ['id' => 'group_id']) ->viaTable('groupUserRelation'); } public function getGroupUserRelation() { return $this->hasMany(GroupUserRelation::tableName(), ['user_id' => 'id']); }
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!