В этом коротком материале вы узнаете, как упорядочить записи Laravel Eloquent в порядке "возрастания" или "убывания", так что давайте начнем.
Сортировка Laravel по одному столбцу
Для упорядочивания по одному столбцу вы можете вызвать метод "OrderBy ()" и передать ему название "столбца" для упорядочивания. По умолчанию этот метод упорядочивает в порядке "возрастания". Ниже приведен код примера.
<?php
Post::query()
->orderBy('item_views')
->get();
Чтобы задать порядок по убыванию, вы можете написать свой код следующим образом.
<?php
Post::query()
->orderBy('item_views', 'desc')
->get();
// Так-же попробуйте альтернативный метод "orderByDesc"
Post::query()
->orderByDesc('item_views', 'desc')
->get();
Сортировка в Laravel по двум столбцам
Для упорядочивания по двум или более столбцам вы можете просто объединить их в цепочку, как показано ниже.
<?php
Post::query()
->orderBy('item_views', 'desc') // DESC
->orderBy('id') // ASC
->get();
// Так-же попробуйте альтернативный метод "orderByDesc"
Post::query()
->orderByDesc('item_views', 'desc') // DESC
->orderBy('id') // ASC
->get();
Сортировка в Eloquent Collection
Если вы уже получили коллекцию eloquent, например, используя функцию "all ()", вы можете связать ее с помощью метода "sortBy ()". Обратите внимание, что такая сортировка менее эффективна, чем вызов метода "OrderBy".
<?php
// Сортировка записей по возрастанию по полю title
$results = Posts::query()
->all()
->sortBy("item_title");
// Сортировка записей по убыванию по полю title
$results = Posts::query()
->all()
->sortByDesc("item_title");