Laravel L5复杂验证数组数据

时间:2018-01-24 18:29:04

标签: arrays laravel validation laravel-5

在我的应用程序中,有一个可以(理论上)具有无限task的表单,我想在我的Request中定义一个验证规则,检查它们中没有一个是彼此相等的:< / p>

自:

<select name="task[1][id][]" class="form-control">

..

<select name="task[2][id][]" class="form-control">

..
..

<select name="task[n][id][]" class="form-control">

由于我对Laravel验证仍然不够熟悉,因此我尝试了以下内容:

'task[1][id][]' => 'different:task[2][id][]', 'task[2][id][]' => 'different:task[1][id][]'

或:

'task[1][id][*]' => 'different:task[2][id][*]', 'task[2][id][*]' => 'different:task[1][id][*]'

或:

'task[*][id][*]' => 'different:task[*][id][*]'

我没有收到任何错误,但验证总是通过。我很确定,有一种很好的方法可以让这个东西运行,但我认为我的方法错了..

编辑:(根据要求提供其他信息)

<select name="task[1][id][]" class="form-control">
      <option value="">&nbsp;</option>
      @foreach ($users as $user)
          <option value="{{ $user->id }}">{{ $user->email }}</option>
      @endforeach
</select>

<select name="task[2][id][]" class="form-control">
      <option value="">&nbsp;</option>
      @foreach($users as $user)
         <option value="{{ $user->id }}">{{ $user->email }}</option>
       @endforeach
</select>

目前,我正在使用&#34;硬编码&#34; <select>。没什么特别的......

1 个答案:

答案 0 :(得分:1)

使用distinct

$rules = [
  'task.*.id.*'=>'distinct'
]