это должно быть просто, но я что-то упустил,
Скажем так:
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
Расплющить
метод сводит многомерную коллекцию в единый
размер:
чего мне не хватает? Я помню, что есть короткий способ получить эти результаты без перебора массива и создания нового
только что получил его, списки (), которые делают магию, поэтому ответ:
Post::select('id')->take(5)->lists('id');
Обновить:
с laravel 5.2 списки () становятся осуждается
Метод списков в Коллекции, построителе запросов и запросе Eloquent
Строитель объектов был переименован в щипки. Подпись метода
остается такой же.
новое имя метода — pluck, которые работают так же:
Post::select('id')->take(5)->pluck('id');
Других решений пока нет …