Laravel Collective SelectBox编辑人口

时间:2018-02-19 11:58:17

标签: php html laravel laravel-5

我想填充整个编辑表单,但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.

提前致谢!

1 个答案:

答案 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']) }}