当前位置:首页 > CMS教程 > 其它CMS > 列表

Yii2.0框架模型多表关联查询示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-12-05 16:45:38 浏览: 评论:0 

这篇文章主要介绍了Yii2.0框架模型多表关联查询,结合实例形式总结分析了Yii2.0框架多表关联查询相关操作技巧,需要的朋友可以参考下。

本文实例讲述了Yii2.0框架模型多表关联查询,分享给大家供大家参考,具体如下:

联表查询--hasMany:

  1. use app\models\User; 
  2. $right = Right::findOne(2); 
  3. //$user = User::find()->where(['right_id' => $right->attributes['id']])->all(); 
  4. $user = $right->hasMany(User::className(),['right_id' => 'id'])->all(); 
  5. //right_id为User::className()表中字段,id为Right::findOne(2)表字段 

多表关联一对多查询优化

如果多次用到同表相同查询:

\models\Rught.php

  1. namespace app\models; 
  2. use \yii\db\ActiveRecord; 
  3. class Right extends ActiveRecord 
  4.   public function getUsers() 
  5.   { 
  6.     $users = $this->hasMany(User::className(),['right_id' => 'id'])->asArray()p->all(); 
  7.     return $users
  8.   } 

\controller\home\actionAbout

  1. public function actionAbout() 
  2.   $right = Right::findOne(2); 
  3. //  $users = $right->getRights(); 
  4.   $users = $right->rights; 
  5.   dd($users); 
  6.   return $this->render('about'); 

多表关联一对一查询

\models\User.php

  1. namespace app\models; 
  2. use \yii\db\ActiveRecord; 
  3. class User extends ActiveRecord 
  4.   public function getRight() 
  5.   { 
  6.     $right = $this->hasOne(Right::className,['id' => 'right_id'])->asArray(); 
  7.     return $right
  8.   } 

\controller\home\actionAbout

  1. $user = User::findOne(1); 
  2. $right = $user->user; 
  3. dd($right); 
  4. return $this->render('about'); 

join

//查询关联表的所有数据

$user = User->find()->with('right')->asArray()->all();

Tags: Yii2 0模型多表 Yii2 0关联查询

分享到: