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不用正则采集速度探究总结
Mar 24 PHP
PHP中读写文件实现代码
Oct 20 PHP
用PHP读取超大文件的实例代码
Apr 01 PHP
解析php安全性问题中的:Null 字符问题
Jun 21 PHP
php实现用手机关闭计算机(电脑)的方法
Apr 22 PHP
php开发中的页面跳转方法总结
Apr 26 PHP
一个完整的PHP类包含的七种语法说明
Jun 04 PHP
学习php设计模式 php实现建造者模式
Dec 07 PHP
php基于PDO实现功能强大的MYSQL封装类实例
Feb 27 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
May 20 PHP
PHP实现用session来实现记录用户登陆信息
Oct 15 PHP
使用PHP反射机制来构造"CREATE TABLE"的sql语句
Mar 21 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基础知识:控制结构
2006/12/13 PHP
php面向对象全攻略 (二) 实例化对象 使用对象成员
2009/09/30 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
2015/01/28 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
prototype 的说明 js类
2006/09/07 Javascript
js传值 判断
2006/10/26 Javascript
使用Modello编写JavaScript类
2006/12/22 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
『jQuery』.html(),.text()和.val()的概述及使用
2013/04/22 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
2016/09/20 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
在VUE中实现文件下载并判断状态的方法
2019/11/08 Javascript
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
Python基于select实现的socket服务器
2016/04/13 Python
Python实现PS图像明亮度调整效果示例
2018/01/23 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
python构建基础的爬虫教学
2018/12/23 Python
解决pycharm的Python console不能调试当前程序的问题
2019/01/20 Python
10款最好的Python开发编辑器
2019/07/03 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
python绘制随机网络图形示例
2019/11/21 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
药学专业大专生的自我评价
2013/12/12 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
发布会邀请函
2015/01/31 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
汽车车尾标语大全
2015/08/11 职场文书
干货干货!2019最新优秀创业计划书
2019/03/21 职场文书
使用Redis实现秒杀功能的简单方法
2021/05/08 Redis
PostgreSQL解析URL的方法
2021/08/02 PostgreSQL