雄辩的 ORM laravel 5 获取 id 数组

2022-08-30 07:30:59

我正在使用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 )

答案 1

你可以使用 lists()

test::where('id' ,'>' ,0)->lists('id')->toArray();

注意:如果您以格式定义模型,例如Studly CaseTest


你也可以使用 get()

test::where('id' ,'>' ,0)->get('id');

更新:(对于版本 >= 5.2,请使用“pluck()”代替)

lists() 方法在新版本中已被弃用,现在您可以使用 pluck() 方法代替:>= 5.2

test::where('id' ,'>' ,0)->pluck('id')->toArray();

注意:如果需要字符串,例如在刀片中,则可以使用不带 toArray() 部分的函数,例如:

test::where('id' ,'>' ,0)->pluck('id');

答案 2

从 中,您可以执行的另一种方法是:Collection

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

这将返回一个索引数组,例如,laravel在查询中完全可用。whereIn()


推荐