Laravel-深度数组验证,数组键验证,防止不必要的字段

时间:2019-05-24 19:17:00

标签: laravel validation

在带有数组值的laravel中,请求验证的几个问题。

我有一个复杂的请求,像这样的深数组值

[
 'promo'=> [
  'coupons' => [...]
  'products' => [
   1 => [
    'price' => 100,
    'name' => 'product',
    'img' => [...]
   ],
   ...
  ]
 ]
]

我需要验证数组键,对于整数值,laravel对此没有本地解决方案?但是没关系,这里有一个关于stackoverflow的简单解决方案

\Validator::extend('integer_keys', function($attribute, $value, $parameters, $validator) {
    return is_array($value) && count(array_filter(array_keys($value), 'is_string')) === 0;
});

我最多可以动态添加最多8个产品,像这样的Laravel验证, 工作酒

'promo.products.*.price => required|numeric|max:1000',
'promo.products.*.name=> required|string|max:100',
...

但是在此之前,我尝试验证像这样的阵列产品

promo.product => array|max:8

它也可以使用酒,但是它具有不良行为,可以验证所有内部数组 以及所有没有验证规则的字段(例如“ product.1.id”),这些字段都没有验证规则,通过了验证并进入了验证字段。

如何在不通过此规则验证所有内部数组的情况下验证数组大小和数组键?

0 个答案:

没有答案