Есть таблица с комментариями, имеет поля (вывод комментов в 2-уровня):
ID | PARENT_ID (default NULL)| TOPIC_ID | .....
Модель топика:
class Topic {
....
public function getComments() {
return $this->hasMany(Comments::className(), ['id' => 'topic_id']);
}
}
Модель коментов:
class Comments {
....
public function getAnswer() {
return self::find()->where(['parent_id' => $this->id])->all();
}
}
Во вьюхе:
<? foreach($model->comments as $comment): ?>
<div class="comment"><?= $comments->content ?></div>
<? if(!empty($comments->answer)): ?>
<? foreach($comments->answer as $answer): ?>
<div class="answer"><?= $answer->content ?></div>
<? endforeach; ?>
<? endif;?>
<? endforeach;>
При текущем getAnswer() почему то возвращает только 1 запись ответа на комментарий, хотя в некоторых случаях их более 1, почему так? И можно ли связать таблицу? Типа:
public function getAnswer() {
return $this->hasMany(self::className(), ['id' => 'parent_id'])->where(['parent_id' => $this->id])->all();
}