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高手?学会“懒惰”的编程
Dec 05 PHP
Linux下进行MYSQL编程时插入中文乱码的解决方案
Mar 15 PHP
PHP array_push 数组函数
Dec 26 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
Jun 06 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
Feb 06 PHP
php通过获取头信息判断图片类型的方法
Jun 26 PHP
PHP实现的memcache环形队列类实例
Jul 28 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
Jun 13 PHP
PHP支付系统设计与典型案例分享
Aug 02 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 PHP
Yii2选项卡的简单使用
May 26 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
Jan 04 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 获取客户端的真实ip
2009/11/30 PHP
php中取得URL的根域名的代码
2011/03/23 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
浅析PHP的静态成员函数效率更高的原因
2014/06/13 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
2016/06/17 PHP
Smarty缓存机制实例详解【三种缓存方式】
2019/07/20 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
javascript 计算两个整数的百分比值
2009/12/26 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
2015/03/18 Javascript
jQuery常用且重要方法汇总
2015/07/13 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
2017/01/06 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
2018/08/19 Javascript
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
jQuery实现简单聊天室
2020/02/08 jQuery
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
学生发电厂实习自我鉴定
2013/09/22 职场文书
全国文明单位申报材料
2014/05/31 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
房贷收入证明范本
2015/06/12 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers
python实现简单区块链结构
2021/04/25 Python