douwen1213 2014-08-04 11:02
浏览 125
已采纳

如何使用Laravel表单模型绑定数组作为名称属性?

I want to use form model binding in Laravel. The following (simplified) example works fine:

{{ Form::model($user, array('class'=>'form-horizontal')) }}
    {{ Form::token() }}

    {{ Form::label('email', 'Email Address') }}
    {{ Form::text('email') }}
{{ Form::close() }}

However, I want to use arrays in the name attributes, as is pretty standard nowadays. In other words, have user[email] as the field name, so that I get all the form elements in one array in the backend.

Is this possible with model binding? When I use {{ Form::text('user[email]') }} the email does not get filled in. I tried adding array('user'=>$user) in the Form::model function in case it needed a nested value, but no luck.

  • 写回答

2条回答 默认 最新

  • duanjucong3124 2014-08-04 13:26
    关注

    Form::model(array('user' => $user)) is the correct solution, BUT unfortunately the implementation of form model binding is pretty bad as it does not easily work on a nested, mixed set of arrays and objects. See https://github.com/laravel/framework/pull/5074

    You could try Form::model(array('user' => $user->toArray())) or Form::model((object) array('user' => $user)).

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?