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 17 PHP
php array_map array_multisort 高效处理多维数组排序
Jun 11 PHP
php 数组的合并、拆分、区别取值函数集
Feb 15 PHP
php 带逗号千位符数字的处理方法
Jan 10 PHP
PHP测试程序运行时间的类
Feb 05 PHP
PHP中CURL方法curl_setopt()函数的参数分享
Jan 19 PHP
php中的PHP_EOL换行符详细解析
Oct 26 PHP
PHP实现无限分类的实现方法
Nov 14 PHP
PHP中静态变量的使用方法实例分析
Dec 01 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
PHP精确到毫秒秒杀倒计时实例详解
Mar 14 PHP
php传值和传引用的区别点总结
Nov 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
优化WordPress中文章与评论的时间显示
2016/01/12 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
微博@符号的用户名提示效果。(想@到谁?)
2010/11/05 Javascript
避免回车键导致的页面无意义刷新的解决方法
2011/04/12 Javascript
通过一段代码简单说js中的this的使用
2013/07/23 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
JavaScript中的toLocaleDateString()方法使用简介
2015/06/12 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
jQuery Pagination分页插件使用方法详解
2017/02/28 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
2017/04/11 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
jqueryUI tab标签页代码分享
2017/10/09 jQuery
浅析前端路由简介以及vue-router实现原理
2018/06/01 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
2019/08/07 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
详解python时间模块中的datetime模块
2016/01/13 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
python3实现钉钉消息推送的方法示例
2019/03/14 Python
Python使用修饰器进行异常日志记录操作示例
2019/03/19 Python
网易有道2017内推编程题 洗牌(python)
2019/06/19 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
带你学习Python如何实现回归树模型
2020/07/16 Python
基于Python实现天天酷跑功能
2021/01/06 Python
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
Bergfreunde丹麦:登山装备网上零售商
2017/02/26 全球购物
香港交友网站:be2香港
2018/07/22 全球购物
大学生专业个人学习的自我评价
2013/10/26 职场文书
岗位明星事迹材料
2014/05/18 职场文书
2014教师评职称工作总结
2014/11/10 职场文书
2014年后勤工作总结
2014/11/18 职场文书
转让协议书
2015/01/27 职场文书