如何在 Laravel 中验证整数数组

2022-08-30 14:59:48

我有一个像这样的整数数组。我需要验证以确保每个元素都是数字。我该怎么做?$someVar = array(1,2,3,4,5)$someVar

我知道对于单个值变量的情况,验证规则将如下所示 。如何将相同的规则应用于数组的每个元素?$rules = array('someVar'=>'required|numeric')$someVar

非常感谢您的帮助。


答案 1

现在,laravel 可以选择在数组元素上设置条件。无需为验证int数组等简单内容编写自己的验证器。使用这个(如果在控制器中使用)-

$validator = \Validator::make(compact('someVar'), [
    'someVar' => 'required|array',
    'someVar.*' => 'integer'
]);
$this->validateWith($validator);

$this->validate($request, [
    'someVar' => 'array',
    'someVar.*' => 'int'
]);

答案 2
Validator::extend('numericarray', function($attribute, $value, $parameters)
{
    foreach($value as $v) {
         if(!is_int($v)) return false;
    }
    return true;
});

使用它

$rules = array('someVar'=>'required|array|numericarray')

编辑:此验证的最新版本不需要定义方法。numericarray

$rules = [
    'someVar'   => 'required|array',
    'someVar.*' => 'integer',
];