31 votes

Laravel eloquent listes - Tri d'une liste de valeurs de colonnes

En utilisant Laravel, je crée une liste déroulante dans un formulaire. J'utilise le helper pour créer la liste déroulante et tout fonctionne bien.

Je récupère les données pour la liste déroulante à partir d'une base de données et j'utilise ce qui suit pour les récupérer :

$data = model::lists('name','id')

Encore une fois, tout fonctionne bien et cela renvoie le tableau attendu.

Mon problème est que je ne parviens pas à trier cette liste - j'ai essayé d'ajouter orderBy() mais sans succès.

À part utiliser une fonction PHP native, existe-t-il une méthode Laravel pour trier une liste ?

70voto

Umut Sirin Points 735

Vous pouvez mettre ce que vous voulez, puis le répertorier. Je veux dire:

model::orderBy('orderByColumn')->lists('name', 'id');

Tant que lists est la dernière méthode de la chaîne, les autres méthodes fonctionnent très bien.


À partir de Laravel version 5.3, lists va être obsolète, utilisez plutôt pluck:

model::orderBy('orderByColumn')->pluck('name', 'id');

4voto

thestepafter Points 197

Vous pouvez essayer :

$data = model::select('name','id')->orderBy('name');

Si cela ne fonctionne pas, ajoutez un ->get() à la fin :

$data = model::select('name','id')->orderBy('name')->get();

0voto

Quand je

dd(VotreModel::pluck('name', 'id'));

Je vois que c'est une classe Collection donc j'ai trouvé la collection Laravel et ensuite j'ai trouvé la méthode sortKeys() donc je fais :

VotreModel::pluck('name', 'id')->sortKeys();

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