Я что-то выборка из базы данных:Как добавить массив Laravel Eloquent Collection с парой ключ-значение?
$foo = $this->fooRepository->all()->lists('name', 'id');
я получаю:
Collection {#506 ▼
#items: array:9 [▼
"9c436867-afe9-4234-a849-253aea4f602c" => "aaa"
"d250102b-1370-40d0-99c5-7e5bfd0a15e4" => "sss"
"7342f212-083b-458d-8af8-24986bbb627d" => "ddd"
"029c53ce-dc16-49fd-8d83-9d8270d9ff37" => "fff"
"3add6a37-72e2-4054-853e-9ed8addbf3ea" => "ggg"
"28f5a9ac-014e-4f22-bda8-e2d5b1f48273" => "hhh"
"94fccb2c-d732-4369-9bf7-78925797e578" => "jjj"
"5b494994-93f0-406e-b420-aceb7b6111d7" => "kkk"
"22a7824a-c6eb-45e7-b9c5-e40c134e3ac8" => "lll"
]
}
Perfect. Позднее эта коллекция будет передана в Form::select
, чтобы заполнить выпадающее меню select/option.
Я хотел бы добавить эту коллекцию к другой паре ключ-значение, где ключ будет пустой строкой, а значение будет содержать текст типа «Выберите что-нибудь».
Я могу добавить:
$foo[''] = 'Choose something…';
так что я получаю
Collection {#506 ▼
#items: array:10 [▼
"9c436867-afe9-4234-a849-253aea4f602c" => "aaa"
"d250102b-1370-40d0-99c5-7e5bfd0a15e4" => "sss"
"7342f212-083b-458d-8af8-24986bbb627d" => "ddd"
"029c53ce-dc16-49fd-8d83-9d8270d9ff37" => "fff"
"3add6a37-72e2-4054-853e-9ed8addbf3ea" => "ggg"
"28f5a9ac-014e-4f22-bda8-e2d5b1f48273" => "hhh"
"94fccb2c-d732-4369-9bf7-78925797e578" => "jjj"
"5b494994-93f0-406e-b420-aceb7b6111d7" => "kkk"
"22a7824a-c6eb-45e7-b9c5-e40c134e3ac8" => "lll"
"" => "Choose something…"
]
}
но не знаю как я могу переместить его в качестве первого элемента коллекции. Я просто не могу использовать array_merge
, потому что я имею дело с экземпляром Illuminate\Database\Eloquent\Collection
, а не с массивом, поэтому this answer не будет работать.
Любые подсказки? Благодарю.
Спасибо Джозефу. Это было очень полезно. Единственное, что я должен был изменить, это использовать «Illuminate \ Support \ Collection». – slick
@slick - что вы имеете в виду? Где, что и почему вы должны были изменить? –
позже, в том месте, которое ожидало эту коллекцию '$ foo'. :) Все хорошо. Не волнуйся! – slick