Utknąłem na prostym zadaniu. Muszę tylko zamówić wyniki pochodzące z tego połączenia
$results = Project::all();
Gdzie Project
jest model. Próbowałem tego
$results = Project::all()->orderBy("name");
Ale to nie zadziałało. Jaki jest lepszy sposób na uzyskanie wszystkich danych z tabeli i zamówienie ich?
laravel
laravel-4
eloquent
sql-order-by
MatterGoal
źródło
źródło
get()
vsall()
: stackoverflow.com/questions/34587457/…Nadal możesz użyć sortBy (na poziomie kolekcji) zamiast orderBy (na poziomie zapytania), jeśli nadal chcesz używać all (), ponieważ zwraca kolekcję obiektów.
Rosnąco
Kolejność malejąca
Więcej informacji można znaleźć w dokumentacji dotyczącej kolekcji.
https://laravel.com/docs/5.1/collections
źródło
orderBy
na poziomie zapytania?sortBy()
odbywa się wewnątrz silnika Laravel (w PHP), podczas gdyorderBy()
odbywa się to w bazie danych. Z pewnością baza danych będzie szybsza w prawie wszystkich możliwych sytuacjach, a wraz ze wzrostem zestawu danych zwiększy się różnica w wydajności. Chciałbym usłyszeć opinie innych ludzi na ten temat.Ponadto, aby podeprzeć poprzednie odpowiedzi, można je również posortować w porządku malejącym
desc
lub rosnącymasc
, dodając jeden z nich jako drugi parametr.źródło
Aktualizacja 2017
Laravel 5.4 dodał metody orderByDesc () do konstruktora zapytań:
źródło
Podczas gdy potrzebujesz wyniku dla daty jako opisu
źródło
ZRÓB TO:
NIE RÓB TO:
CZEMU? W skrócie, pierwsze podejście jest szybsze niż drugie podejście.
źródło
Sprawdź
sortBy
metodę Eloquent: http://laravel.com/docs/eloquentźródło
Uwaga: możesz zrobić:
To generuje zapytanie takie jak:
W niektórych aplikacjach, gdy baza danych nie jest zoptymalizowana, a zapytanie jest bardziej złożone, i trzeba uniemożliwić wygenerowanie ORDER BY w końcowym SQL, możesz:
Teraz jest php, który zamawia wynik.
źródło
Twoja instrukcja wymaga połączenia, aby uzyskać, ponieważ jest to przynieść rekordy i zamówić przez katalog
Przykład:
W tym przykładzie dane są filtrowane według „gdzie” i przynoszą rekordy większe niż 20, a katalog sortuje według kolejności od wysokiej do niskiej.
źródło