php三表关联,详解Yii2 hasOne(), hasMany()实现三表关联的两种方法
這篇文章主要介紹了Yii2 hasOne(), hasMany() 實(shí)現(xiàn)三表關(guān)聯(lián)的方法(兩種),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
背景:
現(xiàn)有 group (組)和 user (用戶) 兩種實(shí)例。
一個(gè) group 中可以擁有多個(gè) user,一個(gè) user 也可以屬于有多個(gè) group (多對(duì)多關(guān)系)
GroupUserRelation 表用于綁定組合組員的關(guān)系(使用id綁定)
字段有 id, group_id, user_id
現(xiàn)有User(用戶)表, 需要獲取 其所屬的所有用戶組的信息,需要使用hasMany()進(jìn)行多表關(guān)聯(lián)。
User.id => GroupUserRelation.user_id
GroupUserRelation.group_id => Group.id
方法1
public function getGroup()
{
return $this->hasMany(Group::className(), ['id' => 'group_id'])
->viaTable(GroupUserRelation::tableName(), ['user_id' => 'id']);
}
方法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']);
}
總結(jié)
以上是生活随笔為你收集整理的php三表关联,详解Yii2 hasOne(), hasMany()实现三表关联的两种方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 导入 相对路径,MySQL数
- 下一篇: php mysql随机记录,php –