Yii2.0框架模型多表关联查询示例


Posted in PHP onJuly 18, 2019

本文实例讲述了Yii2.0框架模型多表关联查询。分享给大家供大家参考,具体如下:

联表查询--hasMany:

use app\models\User;
$right = Right::findOne(2);
//$user = User::find()->where(['right_id' => $right->attributes['id']])->all();
$user = $right->hasMany(User::className(),['right_id' => 'id'])->all();
//right_id为User::className()表中字段,id为Right::findOne(2)表字段

多表关联一对多查询优化

如果多次用到同表相同查询:

\models\Rught.php

namespace app\models;
use \yii\db\ActiveRecord;
class Right extends ActiveRecord
{
  public function getUsers()
  {
    $users = $this->hasMany(User::className(),['right_id' => 'id'])->asArray()p->all();
    return $users;
  }
}

\controller\home\actionAbout

public function actionAbout()
{
  $right = Right::findOne(2);
//  $users = $right->getRights();
  $users = $right->rights;
  dd($users);
  return $this->render('about');
}

多表关联一对一查询

\models\User.php

namespace app\models;
use \yii\db\ActiveRecord;
class User extends ActiveRecord
{
  public function getRight()
  {
    $right = $this->hasOne(Right::className,['id' => 'right_id'])->asArray();
    return $right;
  }
}

\controller\home\actionAbout

$user = User::findOne(1);
$right = $user->user;
dd($right);
return $this->render('about');

join

//查询关联表的所有数据
$user = User->find()->with('right')->asArray()->all();

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

PHP 相关文章推荐
phpMyAdmin下载、安装和使用入门教程
May 31 PHP
PHP运行时强制显示出错信息的代码
Apr 20 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
修改ThinkPHP缓存为Memcache的方法
Jun 25 PHP
php按字符无乱码截取中文的方法
Mar 27 PHP
PHP批量去除BOM头内容信息代码
Mar 11 PHP
php简单统计在线人数的方法
May 10 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
May 12 PHP
PHP读取目录树的实现方法分析
Mar 22 PHP
PHP使用反向Ajax技术实现在线客服系统详解
Jul 01 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
Oct 21 PHP
基于laravel缓冲cache的用法详解
Oct 23 PHP
php和redis实现秒杀活动的流程
Jul 17 #PHP
php web环境和命令行环境下查找php.ini的位置
Jul 17 #PHP
php命名空间设计思想、用法与缺点分析
Jul 17 #PHP
php和C#的yield迭代器实现方法对比分析
Jul 17 #PHP
php基于协程实现异步的方法分析
Jul 17 #PHP
php学习笔记之字符串常见操作总结
Jul 16 #PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
Jul 15 #PHP
You might like
在“咖啡之国”感受咖啡文化
2021/03/03 咖啡文化
PHP 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
JQuery的html(data)方法与<script>脚本块的解决方法
2010/03/09 Javascript
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
2015/01/01 NodeJs
JavaScript中文件上传API详解
2016/04/01 Javascript
基于Bootstrap的Metronic框架实现条码和二维码的生成及打印处理操作
2016/08/29 Javascript
原生js实现放大镜
2017/02/20 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
2019/12/02 Javascript
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
Python对数据进行插值和下采样的方法
2018/07/03 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
Python和Sublime整合过程图示
2019/12/25 Python
详细分析Python可变对象和不可变对象
2020/07/09 Python
Python requests接口测试实现代码
2020/09/08 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
应聘医药代表职位求职信
2013/10/21 职场文书
北大研究生linux应用求职信
2013/10/29 职场文书
公司向个人借款协议书范本
2014/10/09 职场文书
2014最新股权信托合同协议书
2014/11/18 职场文书
2014年医药代表工作总结
2014/11/22 职场文书
2014年法院个人工作总结
2014/12/17 职场文书
圣诞节开幕词
2015/01/29 职场文书
借款民事起诉状范文
2015/05/19 职场文书
电影雷锋观后感
2015/06/10 职场文书
教育读书笔记
2015/07/02 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
一文弄懂MySQL索引创建原则
2022/02/28 MySQL