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 相关文章推荐
php桌面中心(一) 创建数据库
Mar 11 PHP
解析dedecms空间迁移步骤详解
May 15 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
May 09 PHP
分享一段php获取linux服务器状态的代码
May 27 PHP
CodeIgniter安全相关设置汇总
Jul 03 PHP
PHP遍历数组的三种方法及效率对比分析
Feb 12 PHP
PHP获取远程图片并保存到本地的方法
May 12 PHP
详解PHP错误日志的获取方法
Jul 20 PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
Oct 19 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
实现PHP中session存储及删除变量
Oct 15 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
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
php反射应用示例
2014/02/25 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
2016/02/26 PHP
PHP实现带进度条的Ajax文件上传功能示例
2019/07/02 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
js+FSO遍历文件夹下文件并显示
2007/03/07 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
JavaScript汉诺塔问题解决方法
2015/04/21 Javascript
20分钟打造属于你的Bootstrap站点
2016/07/27 Javascript
JavaScript DOM节点操作方法总结
2016/08/23 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
python分割和拼接字符串
2013/11/01 Python
Python help()函数用法详解
2014/03/11 Python
python回调函数用法实例分析
2015/05/09 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)
2018/10/22 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
Tensorflow中k.gradients()和tf.stop_gradient()用法说明
2020/06/10 Python
python爬虫构建代理ip池抓取数据库的示例代码
2020/09/22 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
JAVA程序员面试题
2012/10/03 面试题
工作自我评价分享
2013/12/01 职场文书
员工拾金不昧表扬信
2014/01/09 职场文书
《可爱的动物》教学反思
2014/02/22 职场文书
5.12护士节活动总结
2015/02/10 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python