top-think / framework

ThinkPHP Framework
http://www.thinkphp.cn
Other
2.71k stars 1.05k forks source link

Validate对于有序数组的校验 #3011

Open LonelySally opened 1 month ago

LonelySally commented 1 month ago

您的功能请求与问题相关吗? 待验证数据为,需要对sc下每个id做校验

        $data = [
            'sc' => [
                ['id' => -1],
                ['id' => 2]
            ]
        ];

描述您想要的解决方案 像laravel一样使用*作为有序下标的指定通配.

'sc.*.id'=>'require|gt:0'

描述您考虑过的替代方案 当前已闭包的形式进行循环校验

'sc'=>function ($value) {
                if (is_array($value) === false) {
                    return false;
                }
                $v = Validate::rule(['id' => ValidateRule::isRequire()->gt(0)]);
                foreach ($value as $item) {
                    if ($v->check($item) === false) {
                        return false;
                    }
                }
                return true;
            }

其它信息 image