Как вернуть массив вместо коллекции в Laravel?
в Laravel можно выбрать только одно поле и вернуть его в виде набора/ массива.
например рассмотрим модель Foo
который связан с таблицей foos
, который имеет поле id
, a
, b
, c
.
рассмотрим следующие примеры данных:
(1, 10, 15, 20)
(1, 12, 15, 27)
(1, 17, 15, 27)
(1, 25, 16, 29)
(1, 28, 16, 40)
теперь если я хочу создать запрос, который возвращает все значения a
здесь b
is 15
, я мог бы сделать это вот так:
Foo::select('a')->where('b', 15)->get();
это вернет красноречивую коллекцию.
вместо этого, как я могу вернуть массив такой:
[10, 12, 17]
3 ответов
просто использовать pluck()
и ->toArray()
:
Foo::where('b', 15)->pluck('a')->toArray();
фреймворк Laravel и наглеют() метод.
что Laravel() метод.
метод lists устарел, и pluck нужен какой-то параметр, поэтому, если вы хотите получить все атрибуты в формате массива, используйте его таким образом.
Foo::select('a')->where('b', 15)->get()->all();