273 votes

Laravel Eloquent : Ordonner les résultats de all()

Je suis bloqué sur une tâche simple. J'ai juste besoin d'ordonner les résultats provenant de cet appel

$results = Project::all();

Project est un modèle. J'ai essayé ceci

$results = Project::all()->orderBy("name");

Mais cela n'a pas fonctionné. Quelle est la meilleure façon d'obtenir toutes les données d'un tableau et de les ordonner ?

12voto

DsRaj Points 1368

Alors que vous avez besoin d'un résultat pour la date en tant que desc

$results = Project::latest('created_at')->get();

7voto

Dans Laravel Eloquent, vous devez créer une requête comme celle ci-dessous, qui récupérera toutes les données de la base de données, votre requête n'est pas correcte :

$results = Project::all()->orderBy("name");

Vous devez l'utiliser de cette manière :

$results = Project::orderBy('name')->get();

Par défaut, vos données se trouvent dans ascendante mais vous pouvez l'utiliser de la manière suivante :

$results = Project::orderBy('name', 'asc')->get();

Ou en descendant l'ordre :

$results = Project::orderBy('name', 'desc')->get();

5voto

Half Crazed Points 8024

Consultez le site sortBy pour Eloquent : http://laravel.com/docs/eloquent

5voto

hkcoyant Points 51

Remarque : vous pouvez le faire :

$results = Project::select('name')->orderBy('name')->get();

Cela génère une requête comme :

"SELECT name FROM proyect ORDER BY 'name' ASC"

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 avez besoin d'empêcher la génération d'un ORDER BY dans le SQL de finition, vous pouvez le faire :

$result = Project::select('name')->get();
$result = $result->sortBy('name');
$result = $result->values()->all();

Maintenant, c'est php qui commande le résultat.

0voto

Vous avez besoin d'un appel pour obtenir l'instruction, car c'est elle qui apporte les enregistrements et l'ordre par le catalogue.

$results = Project::orderBy('name')
           ->get();

Ejemplo:

$results = Result::where ('id', '>=', '20')
->orderBy('id', 'desc')
->get();

Dans l'exemple, les données sont filtrées par "where" et apportent les enregistrements supérieurs à 20 et le catalogue orderBy par ordre de haut en bas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X