web-dev-qa-db-ja.com

Eloquent ORM laravel 5 IDの配列を取得

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 )
56
paranoid

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();
138
Zakaria Acharki

Collectionから、別の方法でそれを行うことができます:

$collection->pluck('id')->toArray()

これは、たとえばwhereIn()クエリでlaravelによって完全に使用可能なインデックス付き配列を返します。

8
George

それに対する正しい答えはメソッドlistsです。これは次のように非常に簡単です:

$test=test::select('id')->where('id' ,'>' ,0)->lists('id');

よろしく!

lists()メソッドについて読む

$test=test::select('id')->where('id' ,'>' ,0)->lists('id')->toArray()
4
Amir Bar