4

私は yii2 を使用しています。投稿、ファン、コメントの 3 つのテーブルがあります。joinWith() を使用して、コメント付きの投稿と、投稿とコメントのファン名 (ファン テーブル内) を取得したいと考えています。私が書いたのはこのクエリです:

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

そして、リレーションに次の 2 つの関数を追加しました。

<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>

これにより、投稿とその投稿を書いたファンのデータとそのコメントが得られますが、コメントを書いたファンのデータも必要なので、どうすればコメントをファンテーブルに参加させることができますか??

4

1 に答える 1

12

fanモデルに関係があることを確認してCommentsから、次を使用して、各投稿のすべてのコメントと各コメントのファン関係を取得できます。

facebook_posts::find()->joinWith('fans')->joinWith(['comments', 'comments.fan'])->all();
于 2014-05-20T07:47:16.553 に答える