如何在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.';
}