web-dev-qa-db-ja.com

laravel雄弁なリスト-列値のリストのソート

laravelを使用し、フォーム上に選択ボックスを作成しています。ヘルパーを使用して選択ボックスを作成しており、すべて正常に動作しています。

データベースから選択ボックスのデータを取得し、次を使用してデータを取得します。

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

再びすべて正常に動作し、これは期待される配列を返します

私の問題は、このリストを並べ替えることができないように見えることです。orderBy()を追加しようとしましたが、喜びはありません。

ネイティブphp関数を使用する以外に、リストをソートするためのlaravelメソッドがありますか?

28
Ray

好きなものを入れて、リストに追加できます。というのは:

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

listsがチェーンの最後のメソッドである限り、他のメソッドは問題なく機能します。


Laravel version 5.listsdeprecatedになります。代わりにpluckを使用します:

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

あなたが試すことができます:

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

うまくいかない場合は、最後に->get()を投げます:

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

私が

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

私はそれがコレクションクラスだと思うので、コレクションを見つけましたlaravel=そして、メソッドsortKeys()を見つけたので、

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