Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)


Posted in PHP onFebruary 15, 2017

背景:

现有 group (组)和 user (用户) 两种实例。

一个 group 中可以拥有多个 user,一个 user 也可以属于有多个 group (多对多关系)

GroupUserRelation 表用于绑定组合组员的关系(使用id绑定)

字段有 id, group_id, user_id

现有User(用户)表, 需要获取 其所属的所有用户组的信息,需要使用hasMany()进行多表关联。

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']);
}

以上所述是小编给大家介绍的Yii2 hasOne(), hasMany() 实现三表关联的方法(两种),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
如何使用脚本模仿登陆过程
Nov 22 PHP
PHP 定界符 使用技巧
Jun 14 PHP
php set_time_limit()函数的使用详解
Jun 05 PHP
PHP命名空间(Namespace)简明教程
Jun 11 PHP
php中file_get_content 和curl以及fopen 效率分析
Sep 19 PHP
php实现html标签闭合检测与修复方法
Jul 09 PHP
WordPress中获取指定分类及其子分类下的文章数目
Dec 31 PHP
php遍历解析xml字符串的方法
May 05 PHP
PHP生成唯一ID之SnowFlake算法
Dec 17 PHP
PHP 验证身份证是否合法的函数
Feb 09 PHP
php + WebUploader实现图片批量上传功能
May 06 PHP
phpfpm的作用和用法
Oct 10 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
Feb 15 #PHP
详解配置 Apache 服务器支持 PHP 文件的解析
Feb 15 #PHP
PHP使用Redis替代文件存储Session的方法
Feb 15 #PHP
Yii2中多表关联查询hasOne hasMany的方法
Feb 15 #PHP
php+Memcached实现简单留言板功能示例
Feb 15 #PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
Feb 14 #PHP
PHP中Trait及其应用详解
Feb 14 #PHP
You might like
php日历[测试通过]
2008/03/27 PHP
php 在线打包_支持子目录
2008/06/28 PHP
PHP获取网址的顶级域名函数代码
2012/09/24 PHP
浅析PHP中Collection 类的设计
2013/06/21 PHP
PHP定时更新程序设计思路分享
2014/06/10 PHP
php获取图片信息的方法详解
2015/12/10 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
javascript抖动元素的小例子
2013/10/28 Javascript
JS中操作JSON总结
2020/12/06 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
2016/06/10 Javascript
Angularjs中使用layDate日期控件示例
2017/01/11 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
通过js随机函数Math.random实现乱序
2020/05/19 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
python生成以及打开json、csv和txt文件的实例
2018/11/16 Python
python 中不同包 类 方法 之间的调用详解
2020/03/09 Python
Jupyter notebook如何修改平台字体
2020/05/13 Python
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
中软国际Java程序员机试题
2012/08/19 面试题
建议书怎么写
2014/03/12 职场文书
实习评语大全
2014/04/26 职场文书
阳光体育活动总结
2014/04/30 职场文书
市场开发计划书
2014/05/07 职场文书
热情服务标语
2014/10/07 职场文书
西安大雁塔导游词
2015/02/10 职场文书
房屋所有权证明
2015/06/19 职场文书
党员心得体会范文2016
2016/01/23 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL