Yii2: Как объединить отношения как единое целое

У меня два отношения

public function getAnnounceComments()
{
    return $this->hasMany(AnnounceComment::className(), ['user_id' => 'id']);
}


public function getAnnounceRates()
{
    return $this->hasMany(AnnounceRate::className(), ['user_id' => 'id']);
}

Как я могу объединить два отношения пользователя как один на одном announce_id тогда я могу назвать это как$user->commentAndRate->comment или же $user->commentAndRate->rate

1 ответ

Я сделал это так:

Добавил это отношение к AnnounceComment модель:

public function getRate()
{
    return $this->hasOne(AnnounceRate::className(), ['announce_id' => 'announce_id']);
}

И когда я звоню, пользователь сделал так:

$user = User::find()->with('announceComments.rate')->where('id=1')->one()

Тогда я могу легко позвонить:

foreach ($model->announceComments as $key => $comment) {
    echo $comment->text . $comment->rate->count`
}

Жду лучших ответов:)

Другие вопросы по тегам