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 相关文章推荐
ftp类(myftp.php)
Oct 09 PHP
网站当前的在线人数
Oct 09 PHP
一个连接两个不同MYSQL数据库的PHP程序
Oct 09 PHP
服务器端解压缩zip的脚本
Dec 22 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
PHP学习笔记之二
Jan 17 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
May 14 PHP
PHP入门教程之数学运算技巧总结
Sep 11 PHP
php 生成Tab键或逗号分隔的CSV
Sep 24 PHP
PHP7扩展开发之hello word实现方法详解
Jan 15 PHP
php图片裁剪函数
Oct 31 PHP
详解PHP队列的实现
Mar 14 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
咖啡的化学
2021/03/03 咖啡文化
mysql+php分页类(已测)
2008/03/31 PHP
兼容PHP和Java的des加密解密代码分享
2014/06/26 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
Zend Framework框架路由机制代码分析
2016/03/22 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
2016/05/13 PHP
PHP进阶学习之类的自动加载机制原理分析
2019/06/18 PHP
javascript replace方法与正则表达式
2008/02/19 Javascript
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
jquery 学习之一 对象访问
2010/11/23 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
js汉字排序问题 支持中英文混排,兼容各浏览器,包括CHROME
2011/12/20 Javascript
js网页中的(运行代码)功能实现思路
2013/02/04 Javascript
jQuery对象数据缓存Cache原理及jQuery.data方法区别介绍
2013/04/07 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
使用jquery如何获取时间
2016/10/13 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
微信小程序日历插件代码实例
2019/12/04 Javascript
Python编程入门的一些基本知识
2015/05/13 Python
Python Requests安装与简单运用
2016/04/07 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
英国DIY汽车维修配件网站:DIY Car Service Parts
2019/08/30 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
《巨人的花园》教学反思
2014/02/12 职场文书
十八届三中全会感言
2014/03/10 职场文书
生产工厂门卫岗位职责
2014/09/26 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
golang goroutine顺序输出方式
2021/04/29 Golang
tomcat默认最大连接数及相关调整方法
2022/05/06 Servers