我想填充整个编辑表单,但SelectBox不会抓取值并始终保留在第一个。
我的表单选择:
<div class="form-group {{ $errors->has('buyer') ? 'has-error' : '' }}">
{{ Form::label('buyer', __('Klientas')) }}
{{ Form::select('buyer[]', $clients, null, ['class' => 'form-control select2']) }}
{!! $errors->first('buyer','<p class="text-danger"><strong>:message</strong></p>') !!}
</div>
我的控制器:
public function edit($id){
return view('boilerplate::purchases.edit', [ 'purchases' => Purchase::find($id), 'clients' => Clients::pluck('name', 'id')->toArray()]);
}
在照片中选择了RED选项,但它应该是蓝色。 Check the photo.
提前致谢!
答案 0 :(得分:0)
查看Laravel Collective HTML package documentation for Form Model Binding,其中列出了以下有关值优先级的信息:
现在,当您生成表单元素(如文本输入)时,与字段名称匹配的模型值将自动设置为字段值。因此,例如,对于名为email的文本输入,用户模型的电子邮件属性将被设置为值。但是,还有更多!如果会话闪存数据中的项目与输入名称匹配,则该项目将优先于模型的值。所以,优先级看起来像这样:
- 会话Flash数据(旧输入)
- 明确传递值
- 模型属性数据
我们可以从您的select
声明中看到,您明确将selected
值设置为null
,并按照上述优先顺序,null
值为比绑定模型值更高的优先级。
{{ Form::select('buyer[]', $clients, null, ['class' => 'form-control select2']) }}
要解决此问题,您需要明确提供所选值:
{{ Form::select('buyer[]', $clients, $model->client, ['class' => 'form-control select2']) }}