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 抽象类的简单应用
Sep 06 PHP
smarty 缓存控制前的页面静态化原理
Mar 15 PHP
简单的php文件上传(实例)
Oct 27 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
Aug 28 PHP
推荐一款MAC OS X 下php集成开发环境mamp
Nov 08 PHP
php校验表单检测字段是否为空的方法
Mar 20 PHP
php中switch语句用法详解
Aug 17 PHP
php基础教程
Aug 26 PHP
利用PHP将图片转换成base64编码的实现方法
Sep 13 PHP
PHP7.1新功能之Nullable Type用法分析
Sep 26 PHP
Yii2表单事件之Ajax提交实现方法
May 04 PHP
Laravel框架源码解析之入口文件原理分析
May 14 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
如何开发一个虚拟域名系统
2006/10/09 PHP
一周让你学会PHP 不错的学习资料
2009/02/06 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
2014/11/03 PHP
php头像上传预览实例代码
2017/05/02 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
javascript中的注释使用与注意事项小结
2011/09/20 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
JavaScript中Boolean对象的属性解析
2015/10/21 Javascript
jquery拖拽效果完整实例(附demo源码下载)
2016/01/14 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
2016/10/13 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
2017/02/16 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
javascript实现日历效果
2019/06/17 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
在Python的Django框架中创建语言文件
2015/07/27 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
numpy ndarray 取出满足特定条件的某些行实例
2019/12/05 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
详解Python设计模式之策略模式
2020/06/15 Python
next在python中返回迭代器的实例方法
2020/12/15 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
楼面经理岗位职责范本
2014/02/18 职场文书
离婚财产分隔协议书
2014/10/23 职场文书
院系推荐意见
2015/06/05 职场文书
初中军训感想
2015/08/07 职场文书
Android自定义ScrollView实现阻尼回弹
2022/04/01 Java/Android
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python