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 各种排序算法实现代码
Aug 20 PHP
php中计算时间差的几种方法
Dec 31 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
Sep 13 PHP
基于Zend的Config机制的应用分析
May 02 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
Jun 05 PHP
php文件夹与文件目录操作函数介绍
Sep 09 PHP
PHP实现定时执行任务的方法
Oct 05 PHP
php通过array_shift()函数移除数组第一个元素的方法
Mar 18 PHP
Thinkphp连表查询及数据导出方法示例
Oct 15 PHP
Laravel自动生成UUID,从建表到使用详解
Oct 24 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
Mar 23 PHP
PHP数组array类常见操作示例
May 15 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类的自动载入机制
2016/09/16 PHP
php中的单引号、双引号和转义字符详解
2017/02/16 PHP
PHP程序员学习使用Swoole的理由
2018/06/24 PHP
分享20款好玩的jQuery游戏
2011/04/17 Javascript
Jquery中val()表单取值赋值的实例代码
2013/08/15 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
js实现二代身份证号码验证详解
2014/11/20 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
jquery+CSS实现的水平布局多级网页菜单效果
2015/08/24 Javascript
Jquery使用小技巧汇总
2015/12/29 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
react+redux仿微信聊天界面
2019/06/21 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
使用Python如何测试InnoDB与MyISAM的读写性能
2018/09/18 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
python logging添加filter教程
2019/12/24 Python
linux 下python多线程递归复制文件夹及文件夹中的文件
2020/01/02 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
婚前协议书范本
2014/10/27 职场文书
实习协议书
2015/01/27 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书