《PHP學習:Yii2 hasOne(), hasMany() 實現三表關聯的方法(兩種)》要點:
本文介紹了PHP學習:Yii2 hasOne(), hasMany() 實現三表關聯的方法(兩種),希望對您有用。如果有疑問,可以聯系我們。
相關主題:YII框架
背景:PHP應用
現有 group (組)和 user (用戶) 兩種實例.PHP應用
一個 group 中可以擁有多個 user,一個 user 也可以屬于有多個 group (多對多關系)PHP應用
GroupUserRelation 表用于綁定組合組員的關系(使用id綁定)
PHP應用
字段有 id, group_id, user_idPHP應用
現有User(用戶)表, 需要獲取 其所屬的所有用戶組的信息,需要使用hasMany()進行多表關聯.PHP應用
User.id => GroupUserRelation.user_id GroupUserRelation.group_id => Group.id
方法1PHP應用
public function getGroup() { return $this->hasMany(Group::className(), ['id' => 'group_id']) ->viaTable(GroupUserRelation::tableName(), ['user_id' => 'id']); }
方法2PHP應用
public function getGroup() { return $this->hasMany(Group::className(), ['id' => 'group_id']) ->viaTable('groupUserRelation'); } public function getGroupUserRelation() { return $this->hasMany(GroupUserRelation::tableName(), ['user_id' => 'id']); }
以上所述是小編給大家介紹的Yii2 hasOne(), hasMany() 實現三表關聯的方法(兩種),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的.在此也非常感謝大家對維易PHP網站的支持!PHP應用