Имеется следующая таблица:
Мне нужно получить список всех комментариев к посту, чтобы вывести их подобным образом:
Причем комментарии должны выводитсся в порядке от старых до новых. Пробывал сделать так:
$comments = $post->comments()->whereNull('parent_id')->with(['user', 'childrens'])->get()->toArray();
// код функции comments
public function comments() {
return $this->hasMany(\App\Models\Comment::class, 'post_id', 'id');
}
Получаю все корневые комментарии(те, на которые никто не отвечал) + ответы на них, но комментарии, которые являются ответами на некорневые обьекты не берутся с бд.
Как можно сформировать такой запрос не прибегая к большому количеству отдельных запросов? Видел
closure-table-comments, но не хочется подключать только для одной страницы. Еще думал создать отдельню колонку root_id, которая будет храить идендификатор корневого обьекта и выбирать по нему.