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速度全攻略
Oct 09 PHP
URL Rewrite的设置方法
Jan 02 PHP
PHP提示Notice: Undefined variable的解决办法
Nov 24 PHP
Yii框架关联查询with用法分析
Dec 02 PHP
PHP简单日历实现方法
Jul 20 PHP
PHP加密技术的简单实现
Sep 04 PHP
thinkPHP中配置的读取与C方法详解
Dec 05 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 PHP
Thinkphp 框架扩展之驱动扩展实例分析
Apr 27 PHP
PHP使用Http Post请求发送Json对象数据代码解析
Jul 16 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中使用Oracle数据库(5)
2006/10/09 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
2015/03/04 Javascript
灵活使用数组制作图片切换js实现
2016/07/28 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
jQuery事件详解
2017/02/23 Javascript
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
vue将单页面改造成多页面应用的方法
2018/11/25 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
python基础教程之常用运算符
2014/08/29 Python
python数据结构之链表的实例讲解
2017/07/25 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
python opencv调用笔记本摄像头
2019/08/28 Python
Django自定义用户表+自定义admin后台中的字段实例
2019/11/18 Python
python模块内置属性概念及实例
2021/02/18 Python
Python Pygame实现俄罗斯方块
2021/02/19 Python
Zalando Lounge瑞士:时尚与生活方式购物俱乐部
2020/03/12 全球购物
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
信息管理员岗位职责
2013/12/01 职场文书
求职自荐书范文
2013/12/04 职场文书
农村党支部先进事迹
2014/01/14 职场文书
旅游网创业计划书
2014/01/31 职场文书
销售主管岗位职责
2014/02/08 职场文书
师范生求职信
2014/06/14 职场文书
俞敏洪一分钟演讲稿
2014/08/26 职场文书
中职招生先进个人材料
2014/08/31 职场文书
大学生自荐信怎么写
2015/03/26 职场文书
2016年大学迎新晚会工作总结
2015/10/15 职场文书
毕业欢送晚会主持词
2019/06/25 职场文书
Java并发编程之详解CyclicBarrier线程同步
2021/06/23 Java/Android