У меня проблема с моим Laravel проектом. У меня есть модель пост и комментарий. Один пост имеет много комментариев, и это отношение в моем посте. Когда Когда я хочу получить все сообщения и комментарии, все прекрасно работает:
$posts = Post::with('comments')
->orderBy('id', 'desc')
->paginate(10);
У меня проблема, потому что я хочу написать поисковую систему для моделей. Я хочу получить только сообщения и только комментарии, где условие поиска комментариев, если это правда. Я пытаюсь этот код:
$posts = Post::with('comments')
->whereHas('comments', function($q) use($sort, $search){
if($sort === 'answered'){
$q->where('answered', '=', 1);
}
if($search){
$q->where('content', 'like', '%'.$search.'%');
}
})
->orderBy('id', 'desc')
->paginate(10);
Но этот код возвращает все комментарии к публикации, а не только комментарии, где условие истинно.