首页 > 解决方案 > 如何以数组格式显示验证错误

问题描述

这就是我定义对象的方式以通过 api 将数据从 vue js 发送到 laravel

productdetails: [ 
        { 
        userid:'1',
      productlimit:'',
      categoryid:'',
      product_desc:'',
      productprice:'',
      productname: '',
      productimage:null,

    }
      ],

我定义的验证是我以数组的形式向 laravel 发送数据,验证看起来像这样

$validator = Validator::make($request->all(), [
        'productdetails.*.image' => 'required|mimes:jpg,png',
        'productdetails.*.product_name'=>'required|string|unique:products',
        'productdetails.*.categoryid'=>'required',
        'productdetails.*.productlimit'=>'required|max:100'
       
     ]);

我定义的验证错误消息如下所示:

 if ($validator->fails()) {    
        return response()->json(['messages'=>$validator->messages(), 'status' => 400]);
    }

验证错误消息的响应如下所示

{
"messages": {
    "productdetails.0.image": [
        "The productdetails.0.image field is required."
    ],
    "productdetails.1.image": [
        "The productdetails.1.image field is required."
    ],
    "productdetails.2.image": [
        "The productdetails.2.image field is required."
    ],
    "productdetails.0.product_name": [
        "The productdetails.0.product_name field is required."
    ],
    "productdetails.1.product_name": [
        "The productdetails.1.product_name field is required."
    ],
    "productdetails.2.product_name": [
        "The productdetails.2.product_name field is required."
    ],
    "productdetails.0.categoryid": [
        "The productdetails.0.categoryid field is required."
    ],
    "productdetails.1.categoryid": [
        "The productdetails.1.categoryid field is required."
    ],
    "productdetails.2.categoryid": [
        "The productdetails.2.categoryid field is required."
    ],
    "productdetails.0.productlimit": [
        "The productdetails.0.productlimit field is required."
    ],
    "productdetails.1.productlimit": [
        "The productdetails.1.productlimit field is required."
    ],
    "productdetails.2.productlimit": [
        "The productdetails.2.productlimit field is required."
    ]
},
"status": 400

}

这看起来不错,但我需要像这样的验证错误消息

  {
"messages": {
"0": [
    "The productdetails.0.image field is required.",
    "The productdetails.1.image field is required.",
    "The productdetails.2.image field is required."

],

"1": [
    "The productdetails.0.product_name field is required.",
    "The productdetails.1.product_name field is required.",
    "The productdetails.2.product_name field is required."
],
"2": [
    "The productdetails.0.categoryid field is required."   
    "The productdetails.1.categoryid field is required."
    "The productdetails.2.categoryid field is required."
],
"3": [
    "The productdetails.0.productlimit field is required.",  
    "The productdetails.1.productlimit field is required.",   
    "The productdetails.2.productlimit field is required."


  ]
},
"status": 400
}

我怎样才能做到这一点?????

标签: javascriptlaravelvue.js

解决方案


推荐阅读