Kol*_*ola 14 php arrays validation laravel laravel-4
我有一个像这样的整数数组 $someVar = array(1,2,3,4,5).我需要验证$someVar以确保每个元素都是数字.我怎么能这样做?
我知道对于单值变量的情况,验证规则将是这样的$rules = array('someVar'=>'required|numeric').如何将相同的规则应用于数组的每个元素$someVar?
非常感谢您的帮助.
Aay*_*and 56
现在,laravel可以选择在数组元素上设置条件.无需为验证int数组这样的简单事物编写自己的验证器.使用此(如果在控制器中使用) -
$validator = \Validator::make(compact('someVar'), [
'someVar' => 'required|array',
'someVar.*' => 'integer'
]);
$this->validateWith($validator);
Run Code Online (Sandbox Code Playgroud)
要么
$this->validate($request, [
'someVar' => 'array',
'someVar.*' => 'int'
]);
Run Code Online (Sandbox Code Playgroud)
Iss*_*oli 16
Validator::extend('numericarray', function($attribute, $value, $parameters)
{
foreach($value as $v) {
if(!is_int($v)) return false;
}
return true;
});
Run Code Online (Sandbox Code Playgroud)
用它
$rules = array('someVar'=>'required|array|numericarray')
Run Code Online (Sandbox Code Playgroud)
小智 6
在Laravel 5中,您可以使用检查数组中的元素.*.对你来说这意味着:
$rules = array('someVar' => 'required|array',
'someVar.*' => 'integer')
Run Code Online (Sandbox Code Playgroud)
从添加新的验证属性开始
Validator::extend('numeric_array', function($attribute, $values, $parameters)
{
if(! is_array($values)) {
return false;
}
foreach($values as $v) {
if(! is_numeric($v)) {
return false;
}
}
return true;
});
Run Code Online (Sandbox Code Playgroud)
如果attribute不是数组或一个值不是数字值,则该函数将返回false。然后将消息添加到“ app / lang / en / validation.php”
"numeric_array" => "The :attribute field should be an array of numeric values",
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12015 次 |
| 最近记录: |