Я застрял в простой задаче. Мне просто нужно заказать результаты, исходящие от этого вызова
$results = Project::all();
Где Project
- модель. Я пробовал это
$results = Project::all()->orderBy("name");
Но это не сработало. Каков лучший способ получить все данные из таблицы и получить их заказ?
Фактически вы можете сделать это в запросе.
$results = Project::orderBy('name')->get();
Это вернет все результаты с правильным порядком.
Вы все равно можете использовать sortBy (на уровне коллекции) вместо orderBy (на уровне запроса), если вы все еще хотите использовать all(), поскольку он возвращает коллекцию объектов.
Восходящий порядок
$results = Project::all()->sortBy("name");
По убыванию
$results = Project::all()->sortByDesc("name");
Подробнее см. документацию о Коллекциях.
orderBy
на уровне запроса?
Кроме того, чтобы только направить прежние ответы, он также может быть отсортирован либо в порядке убывания desc
, либо в порядке возрастания asc
, добавив либо в качестве второго параметра.
$results = Project::orderBy('created_at', 'desc')->get();
Надеюсь, что это поможет.
Laravel 5.4 добавил методы orderByDesc() для построения запросов:
$results = Project::orderByDesc('name')->get();
Ознакомьтесь с методом sortBy
для Eloquent: http://laravel.com/docs/eloquent