Php 是否有方法显示数组中哪个元素未通过验证?
我使用的类扩展了Laravel的FormRequest类。我有传入的数组,所以我有如下规则:Php 是否有方法显示数组中哪个元素未通过验证?,php,laravel,validation,Php,Laravel,Validation,我使用的类扩展了Laravel的FormRequest类。我有传入的数组,所以我有如下规则: public function rules() { return [ 'name' => 'required', 'name.*.value' => 'required', 'email' => 'required', 'email.*.value' =>
public function rules()
{
return [
'name' => 'required',
'name.*.value' => 'required',
'email' => 'required',
'email.*.value' => 'required|email',
];
}
基本上,当我调用Ajax时,它返回422,并显示以下消息:
name.0.value字段是必需的
public function messages()
{
return [
'email.*.value.required' => 'Recipient email field is required',
'email.*.value.email' => 'Wrong e-mail format',
];
}
我希望它是这样的:第{index}个名称是必需的
public function messages()
{
return [
'email.*.value.required' => 'Recipient email field is required',
'email.*.value.email' => 'Wrong e-mail format',
];
}
是否有在消息中包含*的选项?还是我应该用JQuery来处理它?
提前感谢。尝试使用如下循环:
公共功能消息(){
$messages=[];
foreach($key=>$val)的形式($this->get('email')){
$messages[“email.key.value.required”]=“email$key是required”;
$messages[“email.key.value.email”]=“email$key电子邮件格式错误”;
}
返回$messages;
}
我对代码进行了一点重构,以适应我的风格。如果有人更喜欢这种风格,它也会像这样工作。当然,TsaiKoga的答案是完美无瑕的,并且很好地遵循它
public function messages(){
$messages=[];
foreach ($this->get('email') as $key => $val) {
$messages = [
"email.$key.value.required" => "$key th e-mail is required",
"email.$key.value.email" => "$key th e-mail is wrong e-mail format",
"name.$key.value.required" => "$key th name is required"];
}
return $messages;
}
使用Illumb\Support\Facades\Validator;在你们班