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&java(二)
Oct 09 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
Jun 28 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
Apr 10 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
Jun 12 PHP
PHP内置的Math函数效率测试
Dec 01 PHP
Yii实现MySQL多数据库和读写分离实例分析
Dec 03 PHP
php+html5使用FormData对象提交表单及上传图片的方法
Feb 11 PHP
php中switch语句用法详解
Aug 17 PHP
php实现的redis缓存类定义与使用方法示例
Aug 09 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
Apr 02 PHP
thinkphp整合系列之极验滑动验证码geetest功能
Jun 18 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中PDO的错误处理
2011/09/04 PHP
PHP __autoload()方法真的影响性能吗?
2012/03/30 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
浅析js中substring和substr的方法
2015/11/09 Javascript
基于jquery实现表格内容筛选功能实例解析
2016/05/09 Javascript
JQuery的attr 与 val区别
2016/06/12 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
2017/07/24 Javascript
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
如何管理Vue中的缓存页面
2021/02/06 Vue.js
python设置windows桌面壁纸的实现代码
2013/01/28 Python
python实现倒计时的示例
2014/02/14 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
Python 专题六 局部变量、全局变量global、导入模块变量
2017/03/20 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
Tensorflow设置显存自适应,显存比例的操作
2020/02/03 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
意大利团购网站:Groupon意大利
2016/10/11 全球购物
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
自行车租赁公司创业计划书
2014/01/28 职场文书
运动会入场词60字
2014/02/15 职场文书
毕业生自荐信格式
2014/03/07 职场文书
2014年医务科工作总结
2014/12/18 职场文书
内勤岗位职责
2015/02/10 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
论文评审意见
2015/06/05 职场文书
2016校本研修培训心得体会
2016/01/08 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书