Where函数查询withcount不起作用Laravel



这非常适合

return Webinar::query()
->withCount('users')->orderByDesc('users_count')
->get();

但我需要使用排序条件,但这不适用于

return Webinar::query()
->where(function($query) use ($sort_by) {
if($sort_by == 0) {
return $query->withCount('users')->orderByDesc('users_count');
} else {
return $query->withCount('review')->orderByDesc('review_count');
}
})
->get();

我还尝试了一个这样的条件来检查我的if-else功能

return Webinar::query()
->where(function($query) use ($sort_by) {
if($sort_by == 0) {
return $query->withCount('users')->orderByDesc('users_count')
->where('status', 2);
} else {
return $query->withCount('review')->orderByDesc('review_count')
->where('status', 1);
}
})
->get();

但是where状态只起作用而不起作用。我希望有人能回答,非常感谢

condition代码移出query如何

但我需要使用排序条件,但这不适用于

if ($sort_by === 0) {
$order = 'users_count';
$count = 'users';
} else {
$order = 'review_count';
$count = 'review';
}
return Webinar::query()
->withCount('users')->orderByDesc($order)
->get();

最新更新