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 相关文章推荐
在PWS上安装PHP4.0正式版
Oct 09 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
php 判断数组是几维数组
Mar 20 PHP
php字符串按照单词进行反转的方法
Mar 14 PHP
YiiFramework入门知识点总结(图文教程)
Dec 28 PHP
Zend Framework动作助手Redirector用法实例详解
Mar 05 PHP
PHP与Java对比学习日期时间函数
Jul 03 PHP
CI框架实现框架前后端分离的方法详解
Dec 30 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
浅谈PHP各环境下的伪静态配置
Mar 13 PHP
PHP常用的类封装小结【4个工具类】
Jun 28 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
Sep 17 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
IIS下配置Php+Mysql+zend的图文教程
2006/12/08 PHP
探讨如何把session存入数据库
2013/06/07 PHP
PHP生成sitemap.xml地图函数
2013/11/13 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
Javascript学习笔记2 函数
2010/01/11 Javascript
Javascript Function对象扩展之延时执行函数
2010/07/06 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
2014/05/23 Javascript
Javascript基础教程之数据类型 (数值 Number)
2015/01/18 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
vue渲染时闪烁{{}}的问题及解决方法
2018/03/28 Javascript
ES6 Array常用扩展的应用实例分析
2019/06/26 Javascript
DatePickerDialog 自定义样式及使用全解
2019/07/09 Javascript
[06:16]DOTA2守卫传承者——职业选手谈心路历程
2015/02/26 DOTA
在Python的struct模块中进行数据格式转换的方法
2015/06/17 Python
python中subprocess批量执行linux命令
2018/04/27 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/27 Python
python实现微信小程序自动回复
2018/09/10 Python
python使用response.read()接收json数据的实例
2018/12/19 Python
python将处理好的图像保存到指定目录下的方法
2019/01/10 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
Smashbox官网:美国知名彩妆品牌
2017/01/05 全球购物
家具厂厂长岗位职责
2014/01/01 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
正风肃纪查摆剖析材料
2014/10/10 职场文书
财务部岗位职责
2015/02/03 职场文书
导游词之藏龙百瀑景区
2019/12/30 职场文书
python实现简单倒计时功能
2021/04/21 Python
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL
CSS三大特性继承性、层叠性和优先级详解
2022/01/18 HTML / CSS