Yii2: Как объединить отношения как единое целое - PullRequest
0 голосов
/ 26 мая 2018

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

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 Ответ

0 голосов
/ 26 мая 2018

Я так и сделал:

Добавил это отношение к 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`
}

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

...