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字符串截取问题
Nov 28 PHP
PHP中10个不常见却非常有用的函数
Mar 21 PHP
php数据库密码的找回的步骤
Jan 12 PHP
php中将字符串转为HTML的实体引用的一个类
Feb 03 PHP
php实现监听事件
Nov 06 PHP
PHP发送短信代码分享
Aug 11 PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 PHP
php 根据自增id创建唯一编号类
Apr 06 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
Apr 20 PHP
PHP常见数组排序方法小结
Aug 20 PHP
PHP getName()函数讲解
Feb 03 PHP
php实例化一个类的具体方法
Sep 19 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设计模式 Observer(观察者模式)
2011/06/26 PHP
修改php.ini以达到屏蔽错误信息并记录日志
2013/06/16 PHP
单台服务器的PHP进程之间实现共享内存的方法
2014/06/13 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
Linux系统递归生成目录中文件的md5的方法
2015/06/29 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
2015/09/23 PHP
PHP运行模式汇总
2016/11/06 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
JavaScript instanceof 的使用方法示例介绍
2013/10/23 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
2015/12/04 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
JS中cookie的使用及缺点讲解
2017/05/13 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
如何理解Vue的.sync修饰符的使用
2017/08/17 Javascript
JS+canvas绘制的动态机械表动画效果
2017/09/12 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
python opencv设置摄像头分辨率以及各个参数的方法
2018/04/02 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
Python 发送邮件方法总结
2020/08/10 Python
Ratchet 模态框的实现
2020/08/19 HTML / CSS
美国校园市场:OCM
2017/06/08 全球购物
美国在线印刷公司:PsPrint
2017/10/12 全球购物
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
Wojas罗马尼亚网站:波兰皮鞋品牌
2018/11/01 全球购物
八一慰问活动方案
2014/02/07 职场文书
后备干部考察材料
2014/02/12 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
培训心得体会怎么写
2016/01/25 职场文书
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP
Python循环之while无限迭代
2022/04/30 Python