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

2025-05-27 0 46

本文实例讲述了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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Yii2.0框架模型多表关联查询示例 https://www.kuaiidc.com/71199.html

相关文章

猜你喜欢
发表评论
暂无评论