Je suis coincé sur une tâche simple. J'ai juste besoin de commander les résultats de cet appel
$results = Project::all();
Où Project
est un modèle. J'ai essayé
$results = Project::all()->orderBy("name");
Mais ça n'a pas marché. Quelle est la meilleure façon d'obtenir toutes les données d'une table et de les faire commander?
laravel
laravel-4
eloquent
sql-order-by
MatterGoal
la source
la source
get()
vsall()
: stackoverflow.com/questions/34587457/…Vous pouvez toujours utiliser sortBy (au niveau de la collection) au lieu de orderBy (au niveau de la requête) si vous souhaitez toujours utiliser all () car il renvoie une collection d'objets.
Ordre croissant
Ordre décroissant
Consultez la documentation sur les collections pour plus de détails.
https://laravel.com/docs/5.1/collections
la source
orderBy
au niveau de la requête?sortBy()
seorderBy()
faisait à l' intérieur du moteur Laravel (en PHP), alors que cela se faisait dans la base de données. La base de données sera sûrement plus rapide dans presque toutes les situations imaginables, et à mesure que votre ensemble de données augmentera, la disparité des performances augmentera également. J'adorerais entendre les pensées des autres à ce sujet.De plus, juste pour étayer les réponses précédentes, il pourrait également être trié dans l'ordre décroissant
desc
ou croissantasc
en ajoutant l'un ou l'autre comme deuxième paramètre.la source
Mise à jour 2017
Laravel 5.4 a ajouté des méthodes orderByDesc () au générateur de requêtes:
la source
Bien que vous ayez besoin d'un résultat pour la date comme desc
la source
FAITES CECI:
NE FAITES PAS CELA:
POURQUOI? En bref, la première approche est plus rapide que la deuxième approche.
la source
Découvrez la
sortBy
méthode pour Eloquent: http://laravel.com/docs/eloquentla source
Remarque, vous pouvez faire:
Cela génère une requête comme:
Dans certaines applications, lorsque la base de données n'est pas optimisée et que la requête est plus complexe, et que vous devez empêcher de générer un ORDER BY dans le SQL final, vous pouvez faire:
C'est maintenant php qui commande le résultat.
la source
Votre instruction nécessite un appel pour l'obtenir, car est-ce qu'elle apporte les enregistrements et la commande?
Exemple:
Dans l'exemple, les données sont filtrées par "où" et apportent des enregistrements supérieurs à 20 et orderBy catalogue par ordre de haut en bas.
la source