Как мне преобразовать эту коллекцию в массив в Laravel 5.2 - PullRequest
0 голосов
/ 10 апреля 2019

Я обновил свое приложение с Laravel 4.2 до 5.2.Эта строка в контроллере захватила список каталогов:

 $directories = DirectoryModel::lists('name', 'id');

, и я отправил его сжатым на блейд, чтобы создать выпадающее меню на блейде:

 return view('citations.createBlank', compact('citation'), compact('directories'));

ВBlade, я использовал коллектив Form для генерации выпадающего меню следующим образом:

Form::select('directory_id', [null=>'Please Select'] + $directories, $citation->directory_id, ['id'=>'directory','class'=>'form-control input-sm js-basic-single','required'])

В Laravel 4.2 каталогами $ был массив в blade-сервере.Теперь в 5.2 это Collection (объект), и блейд выдает ошибку: Объект класса Illuminate \ Support \ Collection не может быть преобразован в int.

Как мне преобразовать это в массив в Controller?Или мне нужно переписать мой клинок, чтобы генерировать отступление по-другому?

1 Ответ

1 голос
/ 11 апреля 2019

Вам необходимо использовать ->toArray() метод:

$directories = DirectoryModel::lists('name', 'id')->toArray();

Кстати:

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

Так что лучше использовать pluck вместо lists, оно устарело:

$directories = DirectoryModel::pluck('name', 'id')->toArray();

Руководство по обновлению

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...