Laravel中的多数组验证

尼克尔·劳特(Niklesh Raut)

我有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"=>""]
                    ]
                ]

请帮助我解决此问题,因为第一种情况在第二种情况下总是会出错,反之亦然。

尼克尔·劳特(Niklesh Raut)

这是解决方案,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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章