1

它应该很简单,但我错过了一些东西,让我们说这个简单的雄辩:

Post::select('id')->take(5)->get();

我想得到带有结果 id 的简单数组,所以它看起来像这样:

[1,2,3,4,5]

但我得到这样的东西:

[{"id":"1"},{"id":"2"},{"id":"3"},{"id":"4"},{"id":"5"}]

flatten() 不工作,我得到相同的结果:

Post::select('id')->take(5)->get()->flatten();

http://laravel.com/docs/master/collections#method-flatten

flatten 方法将多维集合展平为一维:

我错过了什么?我记得有一种短线 laravel 方法可以在不遍历数组并创建新数组的情况下获得此结果

4

1 回答 1

5

刚刚得到它,它的 lists() 具有魔力,所以答案是:

Post::select('id')->take(5)->lists('id');

更新: 从 laravel 5.2 开始,lists()已弃用

Collection、查询构建器和 Eloquent 查询构建器对象的列表方法已重命名为 pluck。方法签名保持不变。

新方法名称是 pluck ,其工作方式相同:

Post::select('id')->take(5)->pluck('id');
于 2015-11-05T17:49:04.703 回答