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不用内置函数对数组排序的两个算法代码
Feb 08 PHP
ajax在joomla中的原生态应用代码
Jul 19 PHP
PHP闭包(Closure)使用详解
May 02 PHP
PHP 登录完成后如何跳转上一访问页面
Jan 14 PHP
php中getservbyport与getservbyname函数用法实例
Nov 18 PHP
php中mysql操作buffer用法详解
Mar 19 PHP
php生成短域名函数
Mar 23 PHP
PHP实现HTML页面静态化的方法
Nov 04 PHP
php实现搜索类封装示例
Mar 31 PHP
PHP实现的文件操作类及文件下载功能示例
Dec 24 PHP
PHP检测数据类型的几种方法(总结)
Mar 04 PHP
微信小程序 消息推送php服务器验证实例详解
Mar 30 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生成静态页的实现方法
2013/05/10 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
2013/06/21 PHP
php 在windows下配置虚拟目录的方法介绍
2013/06/26 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
js的event详解。
2006/09/06 Javascript
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
2011/10/31 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
使用JavaScript开发跨平台的桌面应用详解
2017/07/27 Javascript
Javascript刷新页面的实例
2017/09/23 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
python文件和目录操作函数小结
2014/07/11 Python
Django实现学生管理系统
2019/02/26 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
python 中如何获取列表的索引
2019/07/02 Python
Python标准库itertools的使用方法
2020/01/17 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
python2和python3哪个使用率高
2020/06/23 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
耐克亚太地区:Nike APAC
2019/12/07 全球购物
计算机大学生的自我评价
2013/10/15 职场文书
大学生专业个人学习的自我评价
2013/10/26 职场文书
运动会领导邀请函
2014/01/10 职场文书
打架检讨书范文
2015/01/27 职场文书
2016年大学生暑期社会实践方案
2015/11/26 职场文书
详解如何用Python实现感知器算法
2021/06/18 Python
一条慢SQL语句引发的改造之路
2022/03/16 MySQL