как получить результаты сбора в виде массива с идентификаторами

это должно быть просто, но я что-то упустил,
Скажем так:

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

Я хочу получить простой массив с идентификаторами результатов, чтобы он выглядел так:

[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

Расплющить
метод сводит многомерную коллекцию в единый
размер:

чего мне не хватает? Я помню, что есть короткий способ получить эти результаты без перебора массива и создания нового

1

Решение

только что получил его, списки (), которые делают магию, поэтому ответ:

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

Обновить:
с laravel 5.2 списки () становятся осуждается

Метод списков в Коллекции, построителе запросов и запросе Eloquent
Строитель объектов был переименован в щипки. Подпись метода
остается такой же.

новое имя метода — pluck, которые работают так же:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]