Вывести посты, у которых есть комментарии
Когда настроены комментарии по связке «Один ко многим» (One to many), то можно показать посты, у которых есть комментарии, через метод has()
.
$posts = Post::has('comments')->get();
Также можно указать, что показывать статьи, у которых, например, больше 3 комментариев.
$posts = Post::has('comments', '>', 3)->get();
Может быть ситуация, что комментарий на модерации или скрыт. Не учитывать такие комментарии можно через метод whereHas()
.
use Illuminate\Database\Eloquent\Builder; // … $posts = Post::whereHas('comments', function (Builder $query) { $query->where('hidden', '!=', 1); })->get();
И обратная ситуация, когда надо показать посты, у которых нет комментариев через метод doesntHave()
.
$posts = Post::doesntHave('comments')->get();
Поддержать автора
Все статьи создаются и поддерживаются одним человеком,
если вам нравится контент, вы можете поддержать автора сайта