Laravel-Vue:如何使用try-catch块在验证请求中捕获验证异常?

时间:2019-01-21 07:30:36

标签: laravel laravel-5 vue.js axios

我正在使用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。如果我在简单的validation中使用try catch,它将起作用。但是无法使其与Validation Request object一起使用。

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

 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块”中捕获它

1 个答案:

答案 0 :(得分:0)

像这样尝试:

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);
    }
  });