我有3种类型的数据需要验证
此验证适用于单个数据
$validator = Validator::make($request->all(), [
'tests.*.finding' => 'required',//works for single test
]);
以上数据样本
["tests"=>
[
0 => ["finding"=>""]
],
[
1 => ["finding"=>""]
]
]
此验证适用于组中的数据
$validator = Validator::make($request->all(), [
'tests.*.*.finding' => 'required',//works for group
]);
以上数据样本
["tests"=>
[
"A" =>[
[
0 => ["finding"=>""]
],
[
1 => ["finding"=>""]
]
],
"B" =>[
[
0 => ["finding"=>""]
],
[
1 => ["finding"=>""]
]
]
]
]
如何验证单项和分组组合中的数据
合并数据样本
["tests"=>
[
"A" =>[
[
0 => ["finding"=>""]
],
[
1 => ["finding"=>""]
]
]
],
[
0 => ["finding"=>""]
],
[
1 => ["finding"=>""]
]
]
请帮助我解决此问题,因为第一种情况在第二种情况下总是会出错,反之亦然。
这是解决方案,Laravel提供了sometimes
规则来管理元素的存在,然后仅着手检查下一条规则。
所以最终的验证规则是。
$validator = Validator::make($request->all(), [
'tests.*.*.finding' => 'sometimes|required',//works for group
'tests.*.finding' => 'sometimes|required',//works for single test
]);
文档为此:https : //laravel.com/docs/5.4/validation#conditionally-adding-rules
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句