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 相关文章推荐
什么是MVC,好东西啊
May 03 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
PHP5.4中json_encode中文转码的变化小结
Jan 30 PHP
php数组声明、遍历、数组全局变量使用小结
Jun 05 PHP
探讨PHP中OO之静态关键字以及类常量的详解
Jun 07 PHP
php实现图片添加描边字和马赛克的方法
Dec 10 PHP
php输出全球各个时区列表的方法
Mar 31 PHP
PHP实现获取文件后缀名的几种常用方法
Aug 08 PHP
php session 写入数据库
Feb 13 PHP
PHP调试的强悍利器之PHPDBG
Feb 22 PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 PHP
laravel框架 api自定义全局异常处理方法
Oct 11 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文件上传实例详解!!!
2007/01/02 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
IE无法设置短域名下Cookie
2010/09/23 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
Javascript中神奇的this
2016/01/20 Javascript
jquery选择器中的空格与大于号>、加号+与波浪号~的区别介绍
2016/06/24 Javascript
详解Node.js串行化流程控制
2017/05/04 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
[05:41]2014DOTA2西雅图国际邀请赛 小组赛7月10日TOPPLAY
2014/07/10 DOTA
[44:21]Ti4 循环赛第四日 附加赛NEWBEE vs LGD
2014/07/13 DOTA
Python记录详细调用堆栈日志的方法
2015/05/05 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
python图形用户接口实例详解
2019/12/16 Python
三个python爬虫项目实例代码
2019/12/28 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
关于Python 中的时间处理包datetime和arrow的方法详解
2020/03/19 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
BONIA官方网站:国际奢侈品牌和皮革专家
2016/11/27 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
会计工作心得体会
2014/01/13 职场文书
村捐赠仪式答谢词
2014/01/21 职场文书
餐饮收银员岗位职责
2014/02/07 职场文书
原料仓管员岗位职责
2014/04/12 职场文书
老干部工作先进事迹
2014/08/17 职场文书
2014年个人教学工作总结
2014/12/09 职场文书
报名委托书
2015/01/29 职场文书
争先创优个人总结
2015/03/04 职场文书
食品安全责任书范本
2015/05/09 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
七年级作文之秋游
2019/10/21 职场文书
Python图片处理之图片裁剪教程
2021/05/27 Python
python turtle绘图命令及案例
2021/11/23 Python