在yii2中使用多个表的连接

时间:2014-05-12 10:34:54

标签: php left-join yii2

我正在使用yii2,我有3个表:帖子,粉丝,评论,我想使用joinWith()来获取帖子及其评论和粉丝名称(在粉丝表中)以发布帖子和评论。 我写的是这个查询:

<pre>
 facebook_posts::find()->joinwith('fans')->joinWith('comments')->all();
</pre>

我为关系添加了这两个函数:

<pre>
    public function getfans() {
        return $this->hasOne(Fans::className(), ['id' => 'from_id'])->from(fans::tableName() . ' FBF');
    }
    public function getComments() {
        return $this->hasMany(Comments::className(), ['parent_id' => 'id'])->from(comments::tableName() . ' FBC');
    }
</pre>

这给了我写帖子及其评论的粉丝的帖子和数据,但我需要的是粉丝的数据也写了评论,所以如何加入评论与粉丝表??

1 个答案:

答案 0 :(得分:13)

确保您的fan模型中存在Comments关系,然后您可以使用以下内容获取每个帖子的所有评论以及每条评论的粉丝关系:

facebook_posts::find()->joinWith('fans')->joinWith(['comments', 'comments.fan'])->all();