web-dev-qa-db-fra.com

laravel éloquent lists - Tri d'une liste de valeurs de colonnes

En utilisant laravel et je crée une boîte de sélection sur un formulaire. J'utilise l'assistant pour créer la boîte de sélection et tout fonctionne correctement.

Je récupère les données de la boîte de sélection à partir d'une base de données et utilise les éléments suivants pour récupérer les données:

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

Encore une fois tout fonctionne bien et cela retourne le tableau attendu

Mon problème est que je n'arrive pas à trier cette liste - j'ai essayé d'ajouter orderBy () mais pas de joie.

Existe-t-il une méthode laravel autre que l’utilisation d’une fonction php native?

26
Ray

Vous pouvez mettre ce que vous voulez, puis listez-le. 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 parfaitement.


À partir de Laravel version 5.3 lists va être obsolète , utilisez pluck à la place:

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

Tu peux essayer:

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

Si cela ne fonctionne pas, lancez une ->get() à la fin:

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

quand je 

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

Je vois qu’il s’agit de la classe de collection, alors j’ai trouvé la collection laravel, puis la méthode sortKeys ()

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