阅读文档后确定:http://four.laravel.com/docs/html#form-model-binding
我的表单看起来像这样:
{{ Form::model($profile, array('action' => 'ProfilesController@edit', $profile->user_id, 'files' => true)) }}
{{ Form::select('gender', array('0' => 'What gender are you?', '1' => 'Male', '2' => 'Female'), array('class' => 'span12')) }}
{{ From::close() }}
我的问题是:模型绑定不适用于Form :: select,适用于文本输入。我做错了什么?
感谢您的帮助。
答案 0 :(得分:10)
我认为select中的第3个参数需要是选定的值:
{{ 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 :: select('gender',array('0'=>'你是什么性别?','1'=> '男','2'=> '女'),$ profile->性别,数组('class'=> 'span12'))}}
答案 1 :(得分:6)
kJamesy是对的,第三个参数必须是选中的值,但如果将其设置为null,则表单模型绑定将设置默认值。
{{ Form::model($profile, array('action' => 'ProfilesController@edit', $profile->user_id, 'files' => true)) }}
{{ Form::select('gender', array('0' => 'What gender are you?', '1' => 'Male', '2' => 'Female'), null, array('class' => 'span12')) }}
{{ From::close() }}