Laravel尝试获取没有帖子的主题

时间:2019-06-30 17:51:53

标签: php laravel

我有两个表格,主题和帖子。我只想获取没有帖子的主题。

我尝试使用order by,但是随后我的主题没有帖子,有些主题也有帖子,所以这是错误的。

Topic::where('locale', $locale)
    ->withCount('posts')
    ->orderBy('posts_count', 'ASC')
    ->paginate(15);

2 个答案:

答案 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);