【问题标题】:Laravel Collective SelectBox Edit populationLaravel 集体选择框编辑人口
【发布时间】:2018-02-19 20:06:44
【问题描述】:

我想填充整个 Edit 表单,但 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()]);
    }

在照片中选择了红色选项,但它应该是蓝色的。 Check the photo.

提前致谢!

【问题讨论】:

  • 你在使用模型绑定吗?

标签: php html laravel laravel-5


【解决方案1】:

查看Laravel Collective HTML package documentation for Form Model Binding,它说明了以下关于值优先级的内容:

现在,当您生成表单元素(如文本输入)时,与字段名称匹配的模型值将自动设置为字段值。因此,例如,对于名为 email 的文本输入,用户模型的 email 属性将被设置为值。然而,还有更多!如果会话闪存数据中有与输入名称匹配的项目,则该项目将优先于模型的值。因此,优先级如下所示:

  • 会话闪存数据(旧输入)
  • 显式传递值
  • 模型属性数据

从您的select 声明中可以看出,您将selected 值显式设置为null,并且按照上面的优先顺序,null 值的优先级高于绑定模型值.

{{ Form::select('buyer[]', $clients, null, ['class' => 'form-control select2']) }}

要解决此问题,您需要明确提供所选值:

{{ Form::select('buyer[]', $clients, $model->client, ['class' => 'form-control select2']) }}

【讨论】:

  • 工作得很好,我想我并没有告诉这个领域它是什么样的价值。 P.S:使用 Laravel Collective,如果您将 text 和 etc 值设置为“null”,那么它会填充整个表单。
猜你喜欢
  • 2016-03-27
  • 2017-03-15
  • 2017-04-05
  • 1970-01-01
  • 2021-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-27
相关资源
最近更新 更多