Я использую 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>
это дает мне сообщения и данные поклонника, который написал сообщение и его комментарии, но мне нужны данные фанатов, которые также писали комментарии, поэтому как я могу присоединиться к комментариям с помощью таблицы поклонников?
Удостоверьтесь, что у вас есть отношение fan
в вашей модели Comments
, тогда вы можете использовать следующее, чтобы получить все комментарии к каждому сообщению и отношениям поклонников для каждого комментария:
facebook_posts::find()->joinWith('fans')->joinWith(['comments', 'comments.fan'])->all();