首页 > 解决方案 > Laravel-Vue:如何使用 try-catch 块来捕获验证请求中的验证异常?

问题描述

我正在使用 vue.js。我正在使用 axios 访问我的服务器,例如:

            try{
                const resp  = await axios.post('storeProduct', data, 
                            {
                                headers : header(state)
                            });
                console.log(resp);              

            }catch(error){
                console.log("you are at error");
                console.log(error);


           }

在这里,我在控制台记录我得到错误 422 的错误,但我也想得到message。如果我简单地使用try catch,validation它就可以工作。但不能让它与Validation Request object.

在我的控制器中:“ProductRequest”是具有验证规则的验证对象。它给了我错误,但无法axios在 vue 的 try-block 中捕获。

 public function storeProduct(ProductRequest $request){

        try{
            return $controller->saveProducts($request);
        }catch(\Exception $e){
            return  $e;
        }

    }

ProductRequest.php

public function rules()
    {
        try{
            return validation_value('add_products');
        }catch(\Exception $e){
            return $e;
        }
    }

无论如何我可以从这里返回错误消息并在我的“vue axios try/catch 块”中捕获它

标签: laravellaravel-5vue.jsaxios

解决方案


试试这样:

axios.post('storeProduct', data, 
        {
            headers : header(state)
        })
  .then(response => console.log(response.data))
  .catch(error => {
    if (error.response) {
      console.log("you are at error");
      console.log(error.response);
    }
  });

推荐阅读