Я'м застрял на простой задаче. Мне просто нужно, чтобы упорядочить результаты приходят от этого вызова
$results = Project::all();
Где "проект" - это модель. Я'пробовала это
$results = Project::all()->orderBy("name");
Но это было'т работу. Что является лучшим способом получить все данные из таблицы и вывести их заказывали?
Вы действительно можете сделать это в запросе.
$results = Project::orderBy('name')->get();
Это возвращает все результаты в правильном порядке.
Вы все еще можете использовать sortBy (на уровне семейства) вместо заказатьпо (на уровне запросов) если вы все же хотите использовать все (), поскольку он возвращает коллекцию объектов.
Порядке Возрастания
$results = Project::all()->sortBy("name");
Порядке Убывания
$results = Project::all()->sortByDesc("name");
Проверьте документацию о коллекции более подробно.
Кроме того, чтобы поддержать экс-ответы, это может быть отсортированы также в порядке убывания по убыванию или возрастанию приказы АСК
путем добавления в качестве второго параметра.
$results = Project::orderBy('created_at', 'desc')->get();
Надеюсь, что это помогает.
Фреймворк Laravel 5.4 добавлено orderByDesc() методы построителя запросов:
$results = Project::orderByDesc('name')->get();
ЭТОГО:
$results = Project::orderBy('name')->get();
ДОН'Т СДЕЛАТЬ ЭТО:
$results = Project::all()->sortBy('name');
Почему? Кратко, первый подход работает быстрее, чем второй подход.
Обратите внимание, что вы можете сделать:
$results = Project::select('name')->orderBy('name')->get();
Это создать запрос:
"SELECT name FROM proyect ORDER BY 'name' ASC"
В некоторых приложениях, когда БД не оптимизирована, и запрос является более сложным, и вам нужно не допустить создания заказа в послевкусии SQL, вы можете сделать:
$result = Project::select('name')->get();
$result = $result->sortBy('name');
$result = $result->values()->all();
Теперь это PHP, кто заказывает результат.