如何在laravel请求中验证表单输入数组的至少一个值?

如何在laravel请求中验证表单输入数组的至少一个值?,laravel,laravel-5,laravel-validation,Laravel,Laravel 5,Laravel Validation,我将数组输入传递给存储函数 <div class="col-md-4 form-group-sub mt-2 date_"> <input type="text" name="date[]" class="form-control datepicker" placeholder="Date"> </div>

我将数组输入传递给存储函数

  <div class="col-md-4 form-group-sub mt-2 date_">
   <input type="text" name="date[]" class="form-control datepicker" placeholder="Date">
  </div>
                                               

我想您可以尝试确保
date
是一个最小大小的数组,然后尝试验证它的元素:

'date' => 'array|min:1',
'date.*' => 'filled',
数组

min

已填充

此数组应至少填充一个字段。如果所有的值 我不想提交这份表格

结合使用
array
min:1
和检查空条件的自定义规则

DateCheck规则将检查数组中是否至少有一个元素不为null

内部日期检查规则

    public function passes($attribute, $value)
    {
        $dates = $value;
        foreach($dates as $date){
           if(isset($date)){
               return TRUE;
           }                      
        }
        return FALSE;
    }

     public function message()
    {
        return 'There should be at least one date that is not NULL.';
    }


This will pass
['some date', NULL, NULL, NULL]


This will fail
[NULL, NULL]

This will fail
[]

Anything other than array will fail.
public function rules()
    {
        return [
            'date' => ['array', 'min:1', new DateCheck]
        ];
    }
    public function passes($attribute, $value)
    {
        $dates = $value;
        foreach($dates as $date){
           if(isset($date)){
               return TRUE;
           }                      
        }
        return FALSE;
    }

     public function message()
    {
        return 'There should be at least one date that is not NULL.';
    }