我有两个表格,主题和帖子。我只想获取没有帖子的主题。
我尝试使用order by,但是随后我的主题没有帖子,有些主题也有帖子,所以这是错误的。
Topic::where('locale', $locale)
->withCount('posts')
->orderBy('posts_count', 'ASC')
->paginate(15);
答案 0 :(得分:4)
如果您要获取所有没有帖子的主题,请尝试以下操作:
Topic::doesntHave('posts')->paginate(15);
如果您要过滤某个(最大)帖子数,请执行以下操作:
Topic::has('posts', '<=', $count)->paginate(15);
答案 1 :(得分:1)
如果您尝试获取没有任何帖子的主题,则可以使用doesntHave
,如果您的模型设置正确:
$topicsWithoutPosts= Topic::doesntHave('posts')->where('locale',$locale)->paginate(15);