我的ajax脚本发送这样的数组:
此数组属于Input::get('questions')
Array
(
[0] => Array
(
[name] => fields[]
[value] => test1
)
[1] => Array
(
[name] => fields[]
[value] => test2
)
)
在html中,用户可以添加多个fields
。
你能帮助我吗?我需要这样的东西:
$inputs = array(
'fields' => Input::get('questions')
);
$rules = array(
'fields' => 'required'
);
$validator = Validator::make($inputs,$rules);
if($validator -> fails()){
print_r($validator -> messages() ->all());
}else{
return 'success';
}
答案 0 :(得分:0)
阵列元素的Laravel自定义验证
打开以下文件
/resources/lang/en/validation.php
然后自定义消息添加
'numericarray' => 'The :attribute must be numeric array value.',
'requiredarray' => 'The :attribute must required all element.',
这样,打开另一个文件
/app/Providers/AppServiceProvider.php
现在使用以下代码替换启动功能代码。
public function boot()
{
// it is for integer type array checking.
$this->app['validator']->extend('numericarray', function ($attribute, $value, $parameters)
{
foreach ($value as $v) {
if (!is_int($v)) {
return false;
}
}
return true;
});
// it is for integer type element required.
$this->app['validator']->extend('requiredarray', function ($attribute, $value, $parameters)
{
foreach ($value as $v) {
if(empty($v)){
return false;
}
}
return true;
});
}
现在可以将 requiredarray 用于所需的数组元素。并且还使用 numericarray 进行数组元素整数类型检查。
$this->validate($request, [
'arrayName1' => 'requiredarray',
'arrayName2' => 'numericarray'
]);