Ami*_*Bar 1 php laravel eloquent laravel-5 laravel-collection
它应该很简单,但我遗漏了一些东西,让我们说这个简单的口才:
Post::select('id')->take(5)->get();
Run Code Online (Sandbox Code Playgroud)
我想获得带有结果 ID 的简单数组,因此它看起来像这样:
[1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
但我得到了这样的东西:
[{"id":"1"},{"id":"2"},{"id":"3"},{"id":"4"},{"id":"5"}]
Run Code Online (Sandbox Code Playgroud)
flatten() 不起作用,我得到了相同的结果:
Post::select('id')->take(5)->get()->flatten();
Run Code Online (Sandbox Code Playgroud)
http://laravel.com/docs/master/collections#method-flatten
flatten 方法将多维集合展平为单维:
我错过了什么?我记得有一种短线 Laravel 方法可以在不遍历数组并创建一个新数组的情况下获得此结果
刚知道,它的 list() 有魔力,所以答案是:
Post::select('id')->take(5)->lists('id');
Run Code Online (Sandbox Code Playgroud)
更新: 从 laravel 5.2 开始,list() 已被弃用
集合、查询构建器和 Eloquent 查询构建器对象上的列表方法已重命名为 pluck。方法签名保持不变。
新方法名称是 pluck,其工作方式相同:
Post::select('id')->take(5)->pluck('id');
Run Code Online (Sandbox Code Playgroud)