您可以使用 lists()
:
test::where('id' ,'>' ,0)->lists('id')->toArray();
注意:最好以 Studly Case
格式定义模型,例如 Test
。
您也可以使用 get()
:
test::where('id' ,'>' ,0)->get('id');
更新:(对于 >= 5.2 的版本,请改用“pluck()”)
lists()
方法已在新版本 >= 5.2
中弃用,现在您可以使用 pluck()
方法代替:
test::where('id' ,'>' ,0)->pluck('id')->toArray();
注意:如果您需要一个字符串,例如在刀片中,您可以使用没有 toArray() 部分的函数,例如:
test::where('id' ,'>' ,0)->pluck('id');
从 Collection
,您可以这样做的另一种方法是:
$collection->pluck('id')->toArray()
这将返回一个索引数组,例如,laravel 在 whereIn()
查询中完全可以使用。
\YourModel::all(['id'])
... ->pluck...
中获取集合(仅指定 ID 列,您不会将所有数据加载到模型)
正确答案是方法lists
,非常简单,如下所示:
$test=test::select('id')->where('id' ,'>' ,0)->lists('id');
问候!
您可以使用 all()
方法代替 toArray()
方法(查看更多:laravel documentation):
test::where('id' ,'>' ,0)->pluck('id')->all(); //returns array
如果您需要 string
,您可以不使用 toArray()
附件:
test::where('id' ,'>' ,0)->pluck('id'); //returns string
只是一个额外的信息,如果您使用 DB
:
DB::table('test')->where('id', '>', 0)->pluck('id')->toArray();
如果使用 Eloquent 模型:
test::where('id', '>', 0)->lists('id')->toArray();
阅读有关 lists() 方法的信息
$test=test::select('id')->where('id' ,'>' ,0)->lists('id')->toArray()
从集合中获取具有模型 ID 的数组的简单方法:
$test = test::select('id')->where('id' ,'>' ,0)->get('id')->modelKeys();
自 Laravel 5.5 起可用: https://laravel.com/api/5.5/Illuminate/Database/Eloquent/Collection.html#method_modelKeys
... ->get()->modelKeys()
尽管您已标记答案,但这是一种更简单的方法
App\User::pluck('id')->toArray()
在 Laravel 8 这对我有用
$arr = SomeModel::where("field", value)->get()->toArray();
toArray()
应该返回一个类似[12,14]
的数组