如果索引代码如下,如何修改以获得正确的排序结果?
是查看渲染问题,而不是在后端排序吗?
$jobs = DB::table('jobs')
->where('user_id', $user_id)
->whereMonth('created_at', date('m'))
->orwhere(function ($query) use ($user_id) {
$query->where('user_id', $user_id)
->whereMonth('deleted_at', date('m'));
})
->orderBy('is_running', 1)
->orderBy('created_at', 'desc');
预期结果是
is_running
必须位于顶部其他记录在顶行之后的位置。
created_at | is_running
12.Feb.19 | 1
13.Feb.19 | 0
11.feb.19 | 0
10.feb.19 | 0
09.feb.19 | 0
* | 0
* | 0
答案 0 :(得分:0)
几乎不需要任何更改。
orderBy期望列为直接排序。因此,将->orderBy('is_running', 1)
更改为->orderBy('is_running', desc)
。这将最大的放在顶部。
$jobs = DB::table('jobs')
->where('user_id', $user_id)
->whereMonth('created_at', date('m'))
->orwhere(function ($query) use ($user_id) {
$query->where('user_id', $user_id)
->whereMonth('deleted_at', date('m'));
})
->orderBy('is_running', desc)
->orderBy('created_at', 'desc');