Преобразование Eloquent Relationship в массив для Form::select()

Я хочу иметь возможность генерировать выбор формы с помощью «optgroups» для моих отношений.

Этот код работает:

        foreach($old_project as $project)
        {
            foreach ($project->units as $unit)
            {
                $new_project[$project->name][] = $unit->name;
            }
        }

то на мой взгляд:

 {{ Form::select('units', $new_project) }}

Но это не кажется правильным. Я пытался сделать $old_project->toArray(), но это тоже не работает.

Я просмотрел этот пост на форуме, поэтому я также попытался сделать ->list() - но я не мог заставить его работать.

Есть ли лучший способ сделать это в Laravel 4?

редактировать:

Это моя конечная цель - что-то вроде этого:

<select id="optgroup3" name="unit">
   <optgroup label="Project1">
         <option value="1">Option 1</option>
         <option value="2">Option 2</option>
   </optgroup>
   <optgroup label="Project2">
         <option value="3">Option 3</option>
         <option value="4">Option 4</option>
   </optgroup>
</select>

p.s. Я НЕ хочу этого делать, если могу этого избежать - я хочу использовать Form::select() и держать его в чистоте:

<select id="optgroup3" name="unit">
       @foreach($units as $project)
             <optgroup label="{{{ $project->name }}}">
                    @foreach($project->units as $unit)
                          <option value="{{{ $unit->id }}}">{{{ $unit->name }}}</option>
                    @endforeach
             </optgroup>
       @endforeach
</select>

person Laurence    schedule 18.07.2013    source источник
comment
Хотели бы вы добавить метку для каждой группы опций?   -  person Andreyco    schedule 18.07.2013
comment
да, я бы - я обновил свой вопрос с дополнительной информацией   -  person Laurence    schedule 18.07.2013
comment
Можете ли вы опубликовать объект $old_project?   -  person The Alpha    schedule 18.07.2013
comment
Вы когда-нибудь находили чистое решение для этого?   -  person samuraiseoul    schedule 04.12.2013
comment
Я только что сделал помощник, который выполняет цикл - работает очень хорошо. Мне это нужно было только в этой единственной форме, поэтому я больше не пробовал...   -  person Laurence    schedule 04.12.2013


Ответы (1)


Я думаю, что команда, которую вы ищете, на самом деле lists(). Пытаться:

Project::lists('name', 'id')

person Dwight    schedule 19.07.2013