Laravel L5 复杂验证数组数据



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

从:

<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>

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

使用distinct

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

最新更新