我使用的是Eloquent ORM laravel 5.1,我想返回一个ID数组,其值大于0,我的模型称为test
。
我努力了 :
$test=test::select('id')->where('id' ,'>' ,0)->get()->toarray();
它返回:
Array ( [0] => Array ( [id] => 1 ) [1] => Array ( [id] => 2 ) )
但我希望结果是简单的数组,如:
Array ( 1,2 )
Answers:
您可以使用lists()
:
test::where('id' ,'>' ,0)->lists('id')->toArray();
注意:如果您以Studly Case
格式定义模型更好,例如Test
。
您还可以使用get()
:
test::where('id' ,'>' ,0)->get('id');
更新:( 对于版本> = 5.2)
该lists()
方法在新版本中已弃用>= 5.2
,现在您可以改用pluck()
method了:
test::where('id' ,'>' ,0)->pluck('id')->toArray();
注意: 如果需要一个字符串(例如在blade中),则可以使用不带toArray()部分的函数,例如:
test::where('id' ,'>' ,0)->pluck('id');
toArray()
应该返回一个数组[12,14]
正确的答案是method lists
,就像这样非常简单:
$test=test::select('id')->where('id' ,'>' ,0)->lists('id');
问候!
如果您正在使用,则只是一个额外的信息DB
:
DB::table('test')->where('id', '>', 0)->pluck('id')->toArray();
如果使用口才模型:
test::where('id', '>', 0)->lists('id')->toArray();
您也可以使用all()方法获取所选属性的数组。
$test=test::select('id')->where('id' ,'>' ,0)->all();
问候