我刚刚开始学习 laravel+vue。我能够按照这个 yt 的教程进行操作:https ://www.youtube.com/watch?v=JZDmBWRPWlw 。尽管它看起来已经过时,但我仍然能够按照他的步骤进行操作。我正在使用 laravel-mix 6.0.6 和 vue 2.6.12。
使用检查元素>网络,我可以看到我在数组中抛出了正确的错误消息。
{"component":"Users\/Create","props":{"app":{"name":"Laravel"},"errors":{"name":"The name field is required.","email":"The email field is required."}},"url":"\/users\/create","version":"207fd484b7c2ceeff7800b8c8a11b3b6"}
但不知何故,它没有显示完整的错误消息。现在它只显示句子的第一个字母。哈哈。示例错误消息是:电子邮件字段是必需的,它只会显示字母"T"。下面是我的 Create.vue。基本上它只是一个简单验证的用户创建表单。
创建.vue
<template>
<layout>
<div class="container">
<div class="col-md-6">
<div v-if="Object.keys(errors).length > 0" class="alert alert-danger mt-4">
{{ errors[Object.keys(errors)[0]][0] }}
</div>
<form action="/users" method="POST" class="my-5" @submit.prevent="createUser">
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" id="name" placeholder="Name" v-model="form.name">
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="text" class="form-control" id="email" placeholder="Email" v-model="form.email">
</div>
<div class="form-group">
<label for="name">Password</label>
<input type="password" class="form-control" id="password" placeholder="Password" v-model="form.password">
</div>
<button type="submit" class="btn btn-primary">Create User</button>
</form>
</div>
</div>
</layout>
</template>
<script>
import Layout from '../../Shared/Layout'
export default {
props: ['errors'],
components: {
Layout,
},
data() {
return {
form: {
name: '',
email: '',
password: '',
}
}
},
methods: {
createUser() {
this.$inertia.post('/users', this.form)
.then(() => {
// code
})
}
}
}
</script>
编辑:
我的控制台上有这个错误
[Vue 警告]:v-on 处理程序中的错误:“TypeError:无法读取未定义的属性 'then'”
在发现
---> 在资源/js/Pages/Users/Create.vue