【问题标题】:Laravel - Validation save selected optionLaravel - 验证保存选择的选项
【发布时间】:2018-10-28 15:32:36
【问题描述】:

我有一个经过验证的表单。当这些错误之一发生时,输入字段的值将被保存在输入的值字段中使用{{ old('name') }}。但这仅适用于常规文本输入字段。

我的问题。

如何使用相同的方法保存选择框的选定值?这样如果用户遇到错误,他们选择的选项仍然会被选中?

选中的代码

<select name="period_id" id="" class="form-control {{ $errors->has('period_id') ? ' is-invalid' : '' }}">
   <option value="">Choose a period...</option>
     @foreach($plans as $plan)
     <option value="{{ $plan->id }}">
        {{ $plan->name }}
     </option>
     @endforeach
</select>

@if($errors->has('period_id'))
 <p style="color: red;"> {{ $errors->first('period_id') }}</p>
@endif

编辑

array:9 [▼
  "_token" => "flBWl0qRV7GnMYL0D90G"
  "name" => "Product name"
  "description" => "Descriptiobn"
  "price" => "1,000"
  "productable_type" => "App\Plan"
  "period_id" => "2"
  "periodically_price" => "25"
  "composer_package" => "asdasdsasasad"
  "thumbnail" => UploadedFile {#654 ▶}
]

【问题讨论】:

    标签: laravel validation laravel-5 laravel-4


    【解决方案1】:

    你可以通过Laravel的Form helper试试

    {!! Form::select("input_name", $optionForSelect, old('input_name', isset($valueInput) ? $valueInput : ''), ['class' =&gt; 'form-control', 'id' =&gt; 'input_name']) !!}

    【讨论】:

      【解决方案2】:

      您可以检查每个选项并将selected 属性添加到旧选项。

      &lt;option value="{{ $plan-&gt;id }}" {{ $plan-&gt;id === old('planid') ? 'selected' : '' }}&gt;

      【讨论】:

      • 不幸的是,这对我不起作用。它没有给我任何错误,所以我不知道它返回了什么。
      • 您能否向我们展示一个成功提交的表单的dd($request-&gt;all())? (这是为了检查 1)值是否发送到服务器 2)字段的确切名称)
      • 我将 old('plan_id') 更改为 old('period_id') 因为这就是该字段的调用方式,但它仍然不起作用
      • 1) 你可以检查 html 以检查属性是否被添加到其中 2) 将 === 更改为 == 看看是否有帮助
      猜你喜欢
      • 2017-06-19
      • 1970-01-01
      • 2021-05-21
      • 1970-01-01
      • 2018-03-06
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多