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设计模式 Visitor 访问者模式
Jun 28 PHP
仿dedecms下拉分页样式修改的thinkphp分页类实例
Oct 30 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
Dec 29 PHP
PHP使用内置函数生成图片的方法详解
May 09 PHP
PHP目录操作实例总结
Sep 27 PHP
PHP使用curl函数发送Post请求的注意事项
Nov 26 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
May 26 PHP
php判断str字符串是否是xml格式数据的方法示例
Jul 26 PHP
thinkPHP框架实现的无限回复评论功能示例
Jun 09 PHP
laravel实现按时间日期进行分组统计方法示例
Mar 23 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 PHP
php将xml转化对象的实例详解
Nov 17 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
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
2009/06/08 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
php curl 获取https请求的2种方法
2015/04/27 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
PHP设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
jquery dialog键盘事件代码
2010/08/01 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
json原理分析及实例介绍
2012/11/29 Javascript
JS图片无缝、平滑滚动代码
2014/03/11 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
2015/09/01 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
JavaScript中boolean类型之三种情景实例代码
2016/11/21 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
js类的继承定义与用法分析
2019/06/21 Javascript
vue2路由基本用法实例分析
2020/03/06 Javascript
前端vue+elementUI如何实现记住密码功能
2020/09/20 Javascript
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
基于opencv的selenium滑动验证码的实现
2020/07/24 Python
python之openpyxl模块的安装和基本用法(excel管理)
2021/02/03 Python
NBA欧洲商店(法国):NBA Europe Store FR
2016/10/19 全球购物
MATCHESFASHION.COM法国官网:英国奢侈品零售商
2018/01/04 全球购物
优质服务活动实施方案
2014/05/02 职场文书
班组长安全工作职责
2014/07/15 职场文书
圣诞晚会主持词
2015/07/01 职场文书
初中毕业生感言
2015/07/31 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏