Php 是否有方法显示数组中哪个元素未通过验证?

Php 是否有方法显示数组中哪个元素未通过验证?,php,laravel,validation,Php,Laravel,Validation,我使用的类扩展了Laravel的FormRequest类。我有传入的数组,所以我有如下规则: public function rules() { return [ 'name' => 'required', 'name.*.value' => 'required', 'email' => 'required', 'email.*.value' =>

我使用的类扩展了Laravel的FormRequest类。我有传入的数组,所以我有如下规则:

    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;在你们班