laravel post 带有多个复选框的未选中复选框

laravel post unchecked checkbox with multipul checkboxes

我在表单中有许多选项,提交后循环保存。这些选项中的每一个都包含一个复选框,每个选项都有相同的复选框,我正在使用以下技术将未选中的复选框值添加到 POST 数据中:

因为我想知道复选框是否未被选中并获取该值。

{{ Form::hidden('exclude[]', 0) }}
{{ Form::checkbox('exclude[]', 1) }}

但是,使用此技术的结果是向 'exclude' 项的数组添加了一个额外的值。

  'exclude' => 
    array (size=10)
  0 => string '0' (length=1)
  1 => string '0' (length=1)
  2 => string '0' (length=1)
  3 => string '0' (length=1)
  4 => string '1' (length=1)
  5 => string '0' (length=1)
  6 => string '0' (length=1)
  7 => string '0' (length=1)
  8 => string '0' (length=1)
  9 => string '0' (length=1)

在代码中,此结果取自上述技术的 9 个实例,但一旦勾选了一个复选框,该值就会添加到数组中,而不是替换它。如果我选中每个选项的复选框,它将在 'exclude' 数组中 return 18 个项目。

我怎样才能让它正常工作,就像它被选中一样,而不是 return 未选中的值以及已选中的值。希望这是有道理的:P

这是一个发生了什么的例子:http://web-4bdd8023-5cb2-4f23-adfa-b08b0b136149.runnable.com/

您可以尝试调整字段名称以包含索引。

// some loop
{{ Form::hidden("exclude[$i]", 0) }}
{{ Form::checkbox("exclude[$i]", 1) }}

我结合了@lagbox的回答

<?php $counter=0;?>
@foreach ($sales as $salesperson => $name)
{!! Form::hidden('employee_id['.$counter.']',0 ) !!}
{!! Form::checkbox('employee_id['.$counter.']',$salesperson ) !!} {!! $name !!} <br/>
*Alasan Jika Tidak Masuk: {!! Form::text('employee_reason['.$counter.']','',['class' => 'form-control','id'=>'employee_id-field'] ) !!}
<br/>
<?php $counter = $counter+1; ?>
@endforeach

不够干净,但是可以用。