Laravel查询生成器关系加无关系

时间:2019-01-05 16:54:15

标签: laravel query-builder

我目前有这个可以查询关系:

$users = User::query();

$post_id = $request->input('post_id');

$users->whereHas('posts', function ($query) use ($post_id) {
    $query->where('id', $post_id);
});

return $users->get();

但是在此查询的结果中,我还希望包括没有任何帖子与其关联的用户。结果就是:没有帖子的用户+有特定帖子的用户(上面的代码)。这可能吗?

1 个答案:

答案 0 :(得分:1)

使用doesntHave()

$users->whereHas('posts', function ($query) use ($post_id) {
    $query->where('id', $post_id);
})->orDoesntHave('posts');