我有一个输入数组,我想输出每个特定索引的错误,所以如果我的$input[0]
和$input[1]
遇到错误,他们应该显示,而另一个输入允许说{{1} }没有遇到错误,那就不应该显示:
$input[2]
可能会让您感到困惑,因为我正在使用电子邮件。我只是使用电子邮件验证规则进行测试。
mmad_bonus_type
继承我的$length = $input['length'];
$rules = array();
for($i = 0, $c = $length; $i < $c; $i++){
$rules['mmad_bonus_type'][$i] = 'email';
}
$validator = Validator::make($input, $rules, $message);
if($validator->fails()){
return Response::json($validator->messages());
}
print_r($rules);
:
print_r
如果我运行代码,只输出 [mmad_bonus_type] => Array
(
[0] => email
[1] => email
[2] => email
[3] => email
)
输入的单个错误。
这是我输入的var_dump:
mmad_bonus_type
答案 0 :(得分:2)
验证器对数组键使用array_dot表示法。例如,如果您有<input type="text" name="user[name]" />
之类的输入,则您的验证规则会包含密钥&#39; user.name&#39;。
同样的格式也适用于数字索引。所以,例如,如果你有:
<input type="text" name="mmad_bonus_type[]" />
<input type="text" name="mmad_bonus_type[]" />
<input type="text" name="mmad_bonus_type[]" />
然后你的验证规则是:
$rules = array(
'mmad_bonus_type.0' => 'email',
'mmad_bonus_type.1' => 'email',
'mmad_bonus_type.2' => 'email',
);
在您的情况下,我假设您有一个带有数字索引的mmad_bonus_type
输入数组,因此您可能正在寻找类似的内容:
for($i = 0, $c = $length; $i < $c; $i++){
$rules['mmad_bonus_type.'.$i] = 'email';
}