在laravel 5中验证后,重新填充表单中的复选框字段

时间:2018-12-12 08:08:57

标签: validation checkbox laravel-5.4

在Laravel中进行验证后,我试图重新填充复选框字段。实际上,复选框字段将其命名为数组。示例:

<form name="" action="" method="post">
<div class="row>
   <input type="checkbox" name="models[]" value="1">Model 1
   <input type="checkbox" name="models[]" value="2">Model 2
   <input type="checkbox" name="models[]" value="3">Model 3
   <input type="checkbox" name="models[]" value="4">Model 4
   <input type="checkbox" name="models[]" value="5">Model 5
</div>
<div class="row>
   <input type="checkbox" name="model_name" value="" placeholder="Model Name">       
</div>
<div class="row>
<input type="submit" name="submit" value="submit">
</div>
</form>

我的表单将如下所示。因此,提交表单后,将会出现验证错误,我需要在验证错误后重新填充复选框值。我已经尝试使用{{old('field_name')}}使复选框处于选中状态。但这是行不通的。有人有解决此问题的解决方案吗?

3 个答案:

答案 0 :(得分:0)

您接近!如果检测到<input>的旧值,只需在单词model_name中放入“ checked”一词来“重新激活”选中的方式。

<input type="checkbox" name="model_name" value="" placeholder="Model Name">
       @if (old('model_name'))
           checked
       @endif
/>

答案 1 :(得分:0)

我尝试过与Laravel 5.5中的以下代码类似

<input type="checkbox" name="models[]" value="1" @if( is_array(old('models')) && in_array(1, old('models'))) checked @endif  >Model 1

答案 2 :(得分:0)

这对我有用(Laravel 5.2)

@foreach ($models as $model)
    <input type="checkbox" name="models[{{ $model->id }}]"
        @if (is_array(old('models')) && in_array($model->id, array_keys(old('models'))))
            checked
        @endif
    > {{ $model->name }}
@endforeach