这非常适合
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();