Axios - 显示验证返回的错误是 [object Object]

Dra*_*Dev 2 javascript vue.js vue-component axios vuejs2

在我的 api 中我有:

$request->validate([
        'firstname' => 'required',
        'lastname' => 'required',
        'username' => 'required|unique:users',
        'email' => 'required|email|unique:users',
        'password' => 'required'
    ]);
Run Code Online (Sandbox Code Playgroud)

然后我发现了错误axios with

.catch(error=>{
    console.log("Error: " + error.response.data.errors)
})
Run Code Online (Sandbox Code Playgroud)

然而它会给我:Error: [object Object]

如果我故意输入username数据库中已经存在的 a ,然后将 catch 更改为

.catch(error=>{
    console.log("Error: " + error.response.data.errors.username)
})
Run Code Online (Sandbox Code Playgroud)

它会显示Username is already taken这是一件好事。

这意味着我必须手动指定error.response.data.errors.<x error>才能显示消息,因为如果我输入data.errors.username然后电子邮件是验证中的问题,控制台会说Error: undefined这是有道理的,因为没有data.errors.usernamebut data.errors.email

有没有一种方法可以访问并显示返回的错误而无需手动指定它?万分感谢!

Bou*_*him 5

为了显示错误对象值,尝试使用Object.values(errors)返回一些数组来获取它们,然后使用该flat()方法从中创建一个数组,最后使用join()如下方法连接该值:

  console.log(Object.values(error.response.data.errors).flat().join())
Run Code Online (Sandbox Code Playgroud)