【问题标题】:Laravel 4 form model binding Form::selectLaravel 4 表单模型绑定 Form::select
【发布时间】:2013-07-13 09:19:07
【问题描述】:

阅读文档后确定: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,但适用于文本输入。我做错了什么??

感谢您的帮助。

【问题讨论】:

    标签: laravel laravel-4


    【解决方案1】:

    我认为您在选择中的第三个参数需要是选定的值:

    {{ 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() )
    

    我们看到您可以将您的选项数组作为第四个参数传递。

    因此,工作代码是:

    {{ Form::select('gender', array('0' => '你是什么性别?', '1' => '男', '2' => '女'), $profile->gender, array('class' => 'span12')) }}

    【讨论】:

    • 谢谢老哥,帮了大忙!
    【解决方案2】:

    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() }}
    

    【讨论】:

      猜你喜欢
      • 2013-05-28
      • 1970-01-01
      • 1970-01-01
      • 2014-04-29
      • 1970-01-01
      • 2019-10-28
      • 2015-11-23
      • 2015-02-05
      • 2013-11-02
      相关资源
      最近更新 更多