Ich bin auf eine einfache Aufgabe fixiert. Ich muss nur die Ergebnisse dieses Anrufs bestellen
$results = Project::all();
Wo Project
ist ein Modell? Ich habe es versucht
$results = Project::all()->orderBy("name");
Aber es hat nicht funktioniert. Was ist der bessere Weg, um alle Daten aus einer Tabelle abzurufen und zu bestellen?
laravel
laravel-4
eloquent
sql-order-by
MatterGoal
quelle
quelle
get()
vsall()
: stackoverflow.com/questions/34587457/…Sie können weiterhin sortBy (auf Sammlungsebene) anstelle von orderBy (auf Abfrageebene) verwenden, wenn Sie weiterhin all () verwenden möchten, da eine Sammlung von Objekten zurückgegeben wird.
Aufsteigende Reihenfolge
Absteigende Reihenfolge
Weitere Informationen finden Sie in der Dokumentation zu Sammlungen.
https://laravel.com/docs/5.1/collections
quelle
orderBy
auf Abfrageebene?sortBy()
innerhalb der Laravel Engine (in PHP) erfolgt, während dasorderBy()
in der Datenbank erfolgt. Sicherlich wird die Datenbank in fast allen denkbaren Situationen schneller sein, und mit zunehmendem Dataset steigt auch die Leistungsunterschiede. Ich würde gerne die Gedanken anderer Leute darüber hören.Um die früheren Antworten zu untermauern, kann es außerdem entweder in absteigender
desc
oder aufsteigenderasc
Reihenfolge sortiert werden, indem entweder als zweiter Parameter hinzugefügt wird.quelle
Update 2017
Laravel 5.4 hat orderByDesc () -Methoden zum Abfrage-Builder hinzugefügt:
quelle
Während Sie Ergebnis für Datum als absteigend benötigen
quelle
MACH DAS:
TUN SIE DAS NICHT:
WARUM? Kurz gesagt, der erste Ansatz ist schneller als der zweite Ansatz.
quelle
Überprüfen Sie die
sortBy
Methode für Eloquent: http://laravel.com/docs/eloquentquelle
Beachten Sie, dass Sie Folgendes tun können:
Dies erzeugt eine Abfrage wie:
In einigen Apps können Sie Folgendes tun, wenn die Datenbank nicht optimiert ist und die Abfrage komplexer ist und Sie verhindern müssen, dass im fertigen SQL ein ORDER BY generiert wird:
Jetzt ist PHP, der das Ergebnis bestellt.
quelle
Ihre Anweisung erfordert einen Anruf, um zu erhalten, weil es die Aufzeichnungen bringt und durch den Katalog bestellt
Beispiel:
Im Beispiel werden die Daten nach "wo" gefiltert und bringen Datensätze größer als 20 und orderBy-Katalog nach Reihenfolge von hoch nach niedrig.
quelle