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 相关文章推荐
require(),include(),require_once()和include_once()的异同
Jan 02 PHP
php报表之jpgraph柱状图实例代码
Aug 22 PHP
使用php记录用户通过搜索引擎进网站的关键词
Feb 13 PHP
php如何连接sql server
Oct 16 PHP
PHP实现获取并生成数据库字典的方法
May 04 PHP
zen cart实现订单中增加paypal中预留电话的方法
Jul 12 PHP
Laravel 5.3 学习笔记之 配置
Aug 28 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
CodeIgniter整合Smarty的方法详解
Aug 25 PHP
PHP实现的简单组词算法示例
Apr 10 PHP
php中如何执行linux命令详解
Nov 06 PHP
Laravel使用原生sql语句并调用的方法
Oct 09 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 FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
php生成zip文件类实例
2015/04/07 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
Laravel 框架路由原理与路由访问实例分析
2020/04/14 PHP
jQuery 性能优化指南(3)
2009/05/21 Javascript
js中更短的 Array 类型转换
2011/10/30 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
javascript实现复选框全选或反选
2017/02/04 Javascript
VSCode 配置React Native开发环境的方法
2017/12/27 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
如何在Python中编写并发程序
2016/02/27 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
tensorflow使用指定gpu的方法
2020/02/04 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
金宝贝童装官网:Gymboree
2016/08/31 全球购物
Mamas & Papas沙特阿拉伯:英国最受欢迎的婴儿品牌
2017/11/20 全球购物
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
50道外企软件测试面试题
2014/08/18 面试题
护理学中专毕业生求职信
2013/11/11 职场文书
学校四风对照检查材料
2014/08/28 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
博物馆观后感
2015/06/05 职场文书