Всем привет!
Такая задача у меня:
- Есть комментарии к каждой новости.
- Есть ответы к этим комментариям, которые выводится в виде лестнички.
- Есть мягкое удаление комментариев.
Нужно составить запрос, чтобы выводить ещё и удалённые комментарии только в том случае, если у них есть ответы уже. Если ответов нет, то выводить не надо.
Вначале пробовал так:
$comments = $article->comments()->where(function ($query) {
$query->where('comment_id', 0);
$query->orWhereNull('comment_id');
})->where(function ($query) {
$query->whereHas('comments', function ($query) {
$query->withTrashed();
});
$query->orWhereDoesntHave('comments');
})->orderBy('id', 'desc')->paginate($this->paginate);
Не сработало. Потом попробовал так:
$comments = $article->comments()->withTrashed()->where(function ($query) {
$query->where('comment_id', 0);
$query->orWhereNull('comment_id');
})->where(function ($query) {
$query->whereHas('comments');
$query->orWhereDoesntHave('comments', function ($query) {
$query->whereNull('deleted_at');
});
})->orderBy('id', 'desc')->paginate($this->paginate);
Тоже не сработало. Пока нет идей. Прошу знающих помочь мне с этим запросом.