Два порядка по сортировке в Laravel - PullRequest
0 голосов
/ 12 февраля 2019

Если индексный код такой, как показано ниже, как изменить, чтобы получить правильный результат сортировки?

Это просмотр вопроса рендеринга вместо сортировки в фоновом режиме?

$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');

Ожидаемый результат:

  1. is_running должен быть сверху
  2. позиция других записей после верхней строки.

     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
    

1 Ответ

0 голосов
/ 12 февраля 2019

Требуется очень небольшое изменение.

OrderBy ожидает от столбца order и direct.Так что измените ->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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...