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 相关文章推荐
杏林同学录(三)
Oct 09 PHP
第十五节--Zend引擎的发展
Nov 16 PHP
实现了一个PHP5的getter/setter基类的代码
Feb 25 PHP
php简单封装了一些常用JS操作
Feb 25 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
Nov 14 PHP
php函数重载的替代方法--伪重载详解
May 08 PHP
WordPress开发中自定义菜单的相关PHP函数使用简介
Jan 05 PHP
利用php_imagick实现复古效果的方法
Oct 18 PHP
PHP中关键字interface和implements详解
Jun 14 PHP
php的无刷新操作实现方法分析
Feb 28 PHP
php使用fputcsv实现大数据的导出操作详解
Feb 27 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
让你的网站首页自动选择语言转跳
2006/12/06 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
关于js内存泄露的一个好例子
2013/12/09 Javascript
单元选择合并变色示例代码
2014/05/26 Javascript
jQuery基础知识小结
2014/12/22 Javascript
javascript 常见功能汇总
2015/06/11 Javascript
自己动手写的javascript前端等待控件
2015/10/30 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
基于Node.js实现压缩和解压缩的方法
2018/02/13 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
vue + element-ui的分页问题实现
2018/12/17 Javascript
JavaScript遍历DOM元素的常见方式示例
2019/02/16 Javascript
详解iframe跨域的几种常用方法(小结)
2019/04/29 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
[01:07:46]完美世界DOTA2联赛循环赛 Magma vs IO BO2第二场 11.01
2020/11/02 DOTA
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
python中bisect模块用法实例
2014/09/25 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
社区工作者先进事迹
2014/01/18 职场文书
《彭德怀和他的大黑骡子》教学反思
2014/04/12 职场文书
小学生演讲稿大全
2014/04/25 职场文书
先进工作者申报材料
2014/12/23 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
义卖募捐活动总结
2015/05/09 职场文书
音乐课外活动总结
2015/05/09 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
vue 自定义组件添加原生事件
2022/04/21 Vue.js
JAVA 线程池(池化技术)的实现原理
2022/04/28 Java/Android