Как в Laravel задать сортировку, чтобы заданный id шёл первым, а затем остальные по убыванию?

Код выводит одну статью на странице с пагинацией. Страницы (id) = 5, 4, 3, 2, 1.

  $first = 3;

  return Article::query()
        ->orderByDesc('id')
        ->paginate(1);

Как в запросе поменять порядок сортировки так, чтобы сначала отобразилась запись с id = 3, а уже затем по убыванию, минуя повторное 3? Т.е. записи должны выводиться в таком порядке: 3, 5, 4, 2, 1.


Ответы (1 шт):

Автор решения: Gromfer
$firstElem = collect(DB::table('table')->find($first));
$another = collect(BD::table('table')->where('id', '!=', $first)->orderByDesc('id')->get());
$firstElem = $firstElem->merge($another); // соединяет 
→ Ссылка