首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在InertiaJS中进行表单验证

如何在InertiaJS中进行表单验证
EN

Stack Overflow用户
提问于 2021-01-27 14:04:03
回答 2查看 1.4K关注 0票数 0

我将跟随这个链接来学习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"是空对象。

更新:我的控制器的代码

脚本代码

代码语言:javascript
复制
<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>

应用服务提供商

代码语言:javascript
复制
   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'),
        ];
    });
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-29 07:01:54

要访问电子邮件错误,需要通过this关键字ie添加上下文。this.$page.props.errors.email

票数 3
EN

Stack Overflow用户

发布于 2021-01-27 16:47:04

嘿,我认为您没有在Controller中共享错误包,这就是为什么是空的,要解决这个问题,请转到您的AppServiceProvider并添加以下代码。

代码语言:javascript
复制
  Inertia::share([
    'errors' => function () {
        return Session::get('errors')
            ? Session::get('errors')->getBag('default')->getMessages()
            : (object) [];
    },
]);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65920749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档