php hasmany,Yii2中多表关联查询hasOne hasMany的方法

表positionContent

id

position_id

content_title

content_id

is_recommend

list_sort

update_time

create_time

10

14

大成成长

160910

1

1

2017-02-09 11:51:56

2017-02-09 11:51:56

11

15

创新成长

160910

1

1

2017-02-09 11:52:08

2017-02-09 11:52:08

position表

id

name

title

type

num

remark

update_time

create_time

14

列表推荐一

五星推荐

1

3

2017-02-09 00:00:00

2017-02-09 00:00:00

15

列表推荐二

热销基金

1

4

2017-02-09 00:00:00

2017-02-09 00:00:00

positionContent表的position_id对就position表的id。positionContent跟position是一对一的关系,反过来则是多对一。

model

class PositionContent extends \yii\db\ActiveRecord

{

...

public function getPosition(){

return $this->hasOne(Position::className(), ['id'=>'position_id']);

}

...

然后在Controller调用,这样就能拿到position表中的数据了。

class TestController extends BackendBaseController

{

public function actionIndex()

{

$data = PositionContent::findOne(10);

$position = $data->position;

}

}

其实hasOne是执行了两次查询,并不是真正的连表查询。

SELECT * FROM `position_content` WHERE `id`=10

SELECT * FROM `position` WHERE `id`='14'

以上所述是小编给大家介绍的Yii2中多表关联查询hasOne hasMany,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值