Eloquent ORM laravel 5.1を使用しています。0より大きいIDの配列を返したいと思います。私のモデルはtest
と呼ばれます。
私が試してみました :
$test=test::select('id')->where('id' ,'>' ,0)->get()->toarray();
戻ります:
Array ( [0] => Array ( [id] => 1 ) [1] => Array ( [id] => 2 ) )
しかし、私は次のような単純な配列に結果が必要です:
Array ( 1,2 )
lists()
を使用できます:
test::where('id' ,'>' ,0)->lists('id')->toArray();
注:モデルをStudly Case
形式、たとえばTest
で定義する方が良いでしょう。
get()
を使用することもできます:
test::where('id' ,'>' ,0)->get('id');
UPDATE:(バージョン> = 5.2の場合)
lists()
メソッドはdeprecated新しいバージョン>= 5.2
では、代わりにpluck()
メソッドを使用できます:
test::where('id' ,'>' ,0)->pluck('id')->toArray();
Collection
から、別の方法でそれを行うことができます:
$collection->pluck('id')->toArray()
これは、たとえばwhereIn()
クエリでlaravelによって完全に使用可能なインデックス付き配列を返します。
それに対する正しい答えはメソッドlists
です。これは次のように非常に簡単です:
$test=test::select('id')->where('id' ,'>' ,0)->lists('id');
よろしく!
lists()メソッドについて読む
$test=test::select('id')->where('id' ,'>' ,0)->lists('id')->toArray()