2013-07-18 1 views
1

Я хочу, чтобы иметь возможность создавать форму, выбрать с помощью 'optgroups' для моих отношений.Преобразование Eloquent Связь в массив для формы :: select()

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

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

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

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

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

I looked at this forum post - так что я также пробовал делать -> 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. Я не хочу, чтобы это сделать, если я могу избежать этого - я хочу, чтобы использовать форму :: выберите() и держать его в чистоте:

<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> 
+0

Вы хотите включить метку для каждого OPTGROUP? – Andreyco

+0

Да, я бы - я обновил свой вопрос с дополнительной информацией – Laurence

+0

Можете ли вы разместить объект '$ old_project'? –

ответ

4

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^