您的位置:首页 > 编程学习 > > 正文

php使用yield处理并发(Yii2.0框架模型多表关联查询示例)

更多 时间:2022-01-15 01:45:42 类别:编程学习 浏览量:2596

php使用yield处理并发

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

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

联表查询--hasMany:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 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

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 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

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • public function actionAbout()
  • {
  •   $right = Right::findOne(2);
  • //  $users = $right->getRights();
  •   $users = $right->rights;
  •   dd($users);
  •   return $this->render('about');
  • }
  • 多表关联一对一查询

    \models\User.php

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 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

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

  • ?
  • 1
  • 2
  • //查询关联表的所有数据
  • $user = User->find()->with('right')->asArray()->all();
  • 希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

    原文链接:https://blog.csdn.net/qq_42176520/article/details/91391201

    您可能感兴趣