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进行MySQL删除记录操作代码
Jun 07 PHP
解决php使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
Jul 03 PHP
php调用MySQL存储过程的方法集合(推荐)
Jul 03 PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
Sep 30 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
Apr 17 PHP
php使用正则表达式获取字符串中的URL
Dec 29 PHP
PHP读取XML格式文件的方法总结
Feb 27 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
Jun 19 PHP
PHP利用Mysql锁解决高并发的方法
Sep 04 PHP
stripos函数知识点实例分享
Feb 11 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
Apr 09 PHP
php查看一个变量的占用内存的实例代码
Mar 29 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/10/09 PHP
php 无法加载mcrypt.dll的解决办法
2013/04/03 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
使用js实现雪花飘落效果
2013/08/26 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
2013/12/04 Javascript
js实现div模拟模态对话框展现URL内容
2016/05/27 Javascript
详解JavaScript常量定义
2017/01/03 Javascript
原生js二级联动效果
2017/06/20 Javascript
Express + Session 实现登录验证功能
2017/09/08 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
2017/12/01 Javascript
详解react-redux插件入门
2018/04/19 Javascript
vue.js与element-ui实现菜单树形结构的解决方法
2018/04/21 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
JavaScript常用事件介绍
2019/01/21 Javascript
express.js中间件说明详解
2019/03/19 Javascript
基于Vue2-Calendar改进的日历组件(含中文使用说明)
2019/04/14 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
Python中的choice()方法使用详解
2015/05/15 Python
基于Python log 的正确打开方式
2018/04/28 Python
Python 函数返回值的示例代码
2019/03/11 Python
详解Django 时间与时区设置问题
2019/07/23 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
Django视图、传参和forms验证操作
2020/07/15 Python
优秀团支部事迹材料
2014/02/08 职场文书
演讲稿祖国在我心中
2014/05/04 职场文书
化工见习报告范文
2014/10/31 职场文书
人事行政主管岗位职责
2015/04/09 职场文书
使用numpy实现矩阵的翻转(flip)与旋转
2021/06/03 Python
Python爬虫 简单介绍一下Xpath及使用
2022/04/26 Python