我将跟随这个链接来学习inertiaJS教程。顺便说一下,我用的是laravel 8
我有下面的图片从我的网页。我不知道为什么我在图片中没有一个page>errors。除了我提供的链接之外,还有其他方法来验证表单吗?
我在HTML中注释掉了page.error,因为它会导致错误,因为Error in render: "TypeError: Cannot read property 'email' of undefined"是一个空对象,因为Error in render: "TypeError: Cannot read property 'email' of undefined"是空对象。

更新:我的控制器的代码

脚本代码
<script>
import Layout from "../../Shared/Layout";
export default {
components: {
Layout,
},
data() {
return {
lead: {
name: "",
email: "",
phone: "",
dob: "",
interested_package: "",
},
};
},
methods: {
async handleSubmit() {
let res = await this.$inertia.post("/leads/save", this.lead);
},
},
};
</script>应用服务提供商
public function boot()
{
//
Schema::defaultStringLength(255);
Inertia::share([
'errors' => function () {
return Session::get('errors')
? Session::get('errors')->getBag('default')->getMessage()
: (object)[];
}
]);
Inertia::share('flash', function () {
return [
'message' => Session::get('message'),
'success' => Session::get('success'),
'error' => Session::get('error'),
];
});
}发布于 2021-01-29 07:01:54
要访问电子邮件错误,需要通过this关键字ie添加上下文。this.$page.props.errors.email。
发布于 2021-01-27 16:47:04
嘿,我认为您没有在Controller中共享错误包,这就是为什么是空的,要解决这个问题,请转到您的AppServiceProvider并添加以下代码。
Inertia::share([
'errors' => function () {
return Session::get('errors')
? Session::get('errors')->getBag('default')->getMessages()
: (object) [];
},
]);https://stackoverflow.com/questions/65920749
复制相似问题