Метод orderBy
Метод orderBy применяется к запросу Eloquent
или Query Builder и позволяет отсортировать результаты
выборки по одной или нескольким колонкам. Первым
параметром передаётся имя колонки, вторым -
направление сортировки: 'asc' (по возрастанию)
или 'desc' (по убыванию). По умолчанию
используется сортировка по возрастанию.
Синтаксис
<?php
Model::orderBy($column, $direction);
?>
Пример
Давайте отсортируем статьи по полю 'id' в порядке
убывания:
<?php
use AppModelsArticle;
$articles = Article::orderBy('id', 'desc')->get();
foreach ($articles as $article) {
echo $article->title;
}
?>
Результат выполнения кода:
["article 5", "article 4", "article 3", "article 2", "article 1"]
Пример
Давайте отсортируем статьи по полю 'created_at' в
порядке возрастания (от старых к новым):
<?php
use AppModelsArticle;
$articles = Article::orderBy('created_at')->get();
foreach ($articles as $article) {
echo $article->title . ' - ' . $article->created_at;
}
?>
Результат выполнения кода:
[
"article 1 - 2026-01-01 10:00:00",
"article 2 - 2026-01-02 11:00:00",
"article 3 - 2026-01-03 12:00:00"
]
Пример
Давайте отсортируем статьи по двум колонкам: сначала по полю
'category_id' в порядке возрастания, затем по полю
'title' в порядке убывания:
<?php
use AppModelsArticle;
$articles = Article::orderBy('category_id', 'asc')
->orderBy('title', 'desc')
->get();
foreach ($articles as $article) {
echo $article->category_id . ' - ' . $article->title;
}
?>
Результат выполнения кода:
["1 - article Z", "1 - article A", "2 - article Y", "2 - article B"]
Смотрите также
-
метод
latest,
который сортирует записи по убыванию даты создания -
метод
orderByDesc,
который сортирует записи по убыванию -
метод
oldest,
который сортирует записи по возрастанию даты создания -
метод
reorder,
который сбрасывает существующую сортировку