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 var_dump遍历对象属性的函数与应用代码
Jun 04 PHP
支持中文的php加密解密类代码
Nov 27 PHP
有关于PHP中常见数据类型的汇总分享
Jan 06 PHP
php加密解密实用类分享
Jan 07 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
Jul 08 PHP
Laravel 4 初级教程之安装及入门
Oct 30 PHP
php文件操作之小型留言本实例
Jun 20 PHP
Thinkphp3.2.3分页使用实例解析
Jul 28 PHP
PHPstorm快捷键(分享)
Jul 17 PHP
php检测mysql表是否存在的方法小结
Jul 20 PHP
thinkPHP5分页功能实现方法分析
Oct 25 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 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
(jQuery,mootools,dojo)使用适合自己的编程别名命名
2010/09/14 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
jquery 为a标签绑定click事件示例代码
2014/06/23 Javascript
Google官方支持的NodeJS访问API,提供后台登录授权
2014/07/29 NodeJs
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
javascript汉字拼音互转的简单实例
2016/10/09 Javascript
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
jQuery自定义图片上传插件实例代码
2017/04/04 jQuery
jQuery设置图片等比例缩小的方法
2017/04/29 jQuery
layui复选框限制选择个数的方法
2019/09/18 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
2019/10/14 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python程序设计入门(3)数组的使用
2014/06/16 Python
使用python编写简单的小程序编译成exe跑在win10上
2018/01/15 Python
浅谈Python 多进程默认不能共享全局变量的问题
2019/01/11 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
python 实现Flask中返回图片流给前端展示
2020/01/09 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
详解Python中namedtuple的使用
2020/04/27 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
使用HTML5的Canvas绘制曲线的简单方法
2015/09/08 HTML / CSS
俄语专业毕业生推荐信
2013/10/28 职场文书
三分钟演讲稿事例
2014/03/03 职场文书
文案策划专业自荐信
2014/07/07 职场文书
个人投资合作协议书
2014/10/12 职场文书
建党伟业电影观后感
2015/06/01 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
Python爬虫:从m3u8文件里提取小视频的正确操作
2021/05/14 Python
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL