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`
}
Жду лучших ответов:)