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

表positionContent

idposition_idcontent_titlecontent_idis_recommendlist_sortupdate_timecreate_time
1014大成成长160910112017-02-09 11:51:562017-02-09 11:51:56
1115创新成长160910112017-02-09 11:52:082017-02-09 11:52:08

position表

idnametitletypenumremarkupdate_timecreate_time
14列表推荐一五星推荐132017-02-09 00:00:002017-02-09 00:00:00
15列表推荐二热销基金142017-02-09 00:00:002017-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,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

以上是 Yii2中多表关联查询hasOne hasMany的方法 的全部内容, 来源链接: utcz.com/z/329650.html

回到顶部