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 相关文章推荐
PHP在XP下IIS和Apache2服务器上的安装
Sep 05 PHP
PHP中的日期及时间
Nov 23 PHP
PHP输入流php://input介绍
Sep 18 PHP
PHP函数getenv简介和使用实例
May 12 PHP
phpstorm编辑器乱码问题解决
Dec 01 PHP
php堆排序实现原理与应用方法
Jan 03 PHP
typecho插件编写教程(六):调用接口
May 28 PHP
PHP微信API接口类
Aug 22 PHP
Thinkphp5.0自动生成模块及目录的方法详解
Apr 17 PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 PHP
phpcmsv9.0任意文件上传漏洞解析
Oct 20 PHP
PHP获取学生成绩的方法
Nov 17 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
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
js将long日期格式转换为标准日期格式实现思路
2013/04/07 Javascript
关于include标签导致js路径找不到的问题分析及解决
2013/07/09 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
使用Raygun对Node.js应用进行错误处理的方法
2015/06/23 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
js图片翻书效果代码分享
2015/08/20 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
node.js博客项目开发手记
2018/03/16 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
[58:09]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第三场 6.2
2018/06/03 DOTA
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
常用python数据类型转换函数总结
2014/03/11 Python
python通过elixir包操作mysql数据库实例代码
2018/01/31 Python
python爬虫实例详解
2018/06/19 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
python 实现视频流下载保存MP4的方法
2019/01/09 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
Keras预训练的ImageNet模型实现分类操作
2020/07/07 Python
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
安全生产工作汇报
2014/10/28 职场文书
2015政治思想表现评语
2015/03/25 职场文书
项目验收申请报告
2015/05/15 职场文书
忠诚与背叛观后感
2015/06/04 职场文书
导游词之青岛崂山
2019/12/27 职场文书
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
python脚本框架webpy模板赋值实现
2021/11/20 Python
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python