2013-07-15 4 views
5

OK после прочтения документации: http://four.laravel.com/docs/html#form-model-bindingLaravel 4 типовой формы привязка формы :: выбрать

У меня есть форма, которая выглядит примерно так:

{{ Form::model($profile, array('action' => '[email protected]', $profile->user_id, 'files' => true)) }} 
{{ Form::select('gender', array('0' => 'What gender are you?', '1' => 'Male', '2' => 'Female'), array('class' => 'span12')) }} 
{{ From::close() }} 

Моей проблема: модель связывание не работает с Форма :: выберите, отлично работает с текстовым вводом. Что я делаю не так??

Благодарим за помощь.

ответ

10

Я думаю, что ваш третий параметр в некоторых потребностей быть выбрано значение:

{{ Form::select('gender', array('0' => 'What gender are you?', '1' => 'Male', '2' => 'Female'), $profile->gender) }} 

Я знаю, что это своего рода поражения цели модели связывания, но это будет на самом деле работает. Другое дело, конечно, в том, что теперь вы потеряли свой класс!

Но если у нас есть быстрый взгляд на API:

select(string $name, array $list = array(), string $selected = null, array $options = array()) 

Мы видим, что вы можете передать массив опций в качестве 4-го аргумента.

Таким образом, рабочий код:

{{Form :: выберите ('гендер', массив ('0' => 'Что гендерная ты?', '1' => ' Мужской», '2' => 'Женский'), $ Profile-> пол, массив ('класс' => 'span12'))}}

+0

Спасибо, работает как шарм. – user1543871

+0

Happy to help :) – kJamesy

+0

Спасибо, чувак, помог много! – Brent

6

kJamesy прав, то третий параметр должен быть выбранное значение, но если вы установите значение null, привязка модели модели установит значение по умолчанию.

{{ Form::model($profile, array('action' => '[email protected]', $profile->user_id, 'files' => true)) }} 
{{ Form::select('gender', array('0' => 'What gender are you?', '1' => 'Male', '2' => 'Female'), null, array('class' => 'span12')) }} 
{{ From::close() }} 
Смежные вопросы