gpt4 book ai didi

php - laravel 中的多数组验证

转载 作者:可可西里 更新时间:2023-11-01 12:53:05 25 4
gpt4 key购买 nike

我有 3 种类型的数据要验证

  1. 组内数据
  2. 单一数据
  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

关于php - laravel 中的多数组验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42859805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com