Задать вопрос
@zabavnikovcom

Как выбрать для каждого комментария по 5 дочерних?

Подскажите, как для каждого комментария выбрать по несколько дочерних комментариев, отсортированных по дате создания.
  • Вопрос задан
  • 202 просмотра
Подписаться 2 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
@retvizan
Есть как минимум 6 способов, см Выбрать несколько записей из каждой группы
Ответ написан
Комментировать
AmdY
@AmdY
PHP и прочие вебштучки
Используйте with с нужними параметрами
Comments::with(['subComments' => function($q) { $q->orderBy(...)->take(...) }]);

Не самый оптимальный способ, но особых проблем быть не должно.
Ответ написан
@zabavnikovcom Автор вопроса
Остановился на таком решение - в таблице комментариев добавил поле reply_ids которое хранит список id последних дочерних комментариев. Первым запросом получаю всех родителей. Со всех родителей собираю reply_ids в один массив. Вторым запросом получаю список дочерних комментариев по reply_ids. Ну и потом каждому родительскому комментарию добавляю атрибут replies с его дочерними комментариям, если они есть.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы