Laravel Query Builder 关系加无关系
Laravel Query Builder relationship plus no relationship
我目前有这个可用于查询关系:
$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();
但在此查询的结果中,我还想包括 没有任何 post 连接到他们 的用户。因此结果变为:没有 posts 的用户 + 具有特定 post 的用户(上面的代码)。这可能吗?
使用doesntHave()
:
$users->whereHas('posts', function ($query) use ($post_id) {
$query->where('id', $post_id);
})->orDoesntHave('posts');
我目前有这个可用于查询关系:
$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();
但在此查询的结果中,我还想包括 没有任何 post 连接到他们 的用户。因此结果变为:没有 posts 的用户 + 具有特定 post 的用户(上面的代码)。这可能吗?
使用doesntHave()
:
$users->whereHas('posts', function ($query) use ($post_id) {
$query->where('id', $post_id);
})->orDoesntHave('posts');