首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何共享多个模型的验证规则和包含它们的大型ajax表单

如何共享多个模型的验证规则和包含它们的大型ajax表单
EN

Stack Overflow用户
提问于 2017-05-24 16:44:05
回答 1查看 58关注 0票数 2

我有一个包含几个步骤的大型ajax托管表单。显然,我需要在每个提交步骤之后验证数据。最终的验证结果是创建几个业务对象。

一些业务对象将接收其所有字段,而其他业务对象则不会。例如,不会收到帐单地址的客户(它将在帐单发生时被请求)。事实上,表单非常长,我不想通过添加不立即有用的元素来使表单超载。

一些表单部分只关心我模型包含的少量信息,所以我不能仅仅为了验证他的一些属性而实例化模型。

在原理上,在10月份,通过添加特征验证器在模型级别进行验证,这将使使用通用的Laravel验证功能成为可能(也许我在这里错了),但我不确定我是否可以在模型验证上使用,因为一些验证在表单填写结束时将不完整。

有必要在不创建具有重复验证代码的gas工厂的情况下对所有这些数据进行互验证,但是如何实现,在哪里实现呢?就目前而言,我的想法是让​​在我的对象组件中添加一个处理所有ajax处理程序的特征,但我并不兴奋,因为它不符合我的互操作验证的想法

也许使用行为而不是特征更好

https://octobercms.com/docs/services/behaviors

待续..。

EN

回答 1

Stack Overflow用户

发布于 2017-05-24 21:34:56

如果必须这样做,我会在每个提交步骤之后使用验证服务。https://octobercms.com/docs/services/validation

您可以将信息存储在会话中,并在最后阶段使用它们。

代码语言:javascript
复制
$myinput = post('myinput');
$validator = Validator::make(
    [
        'myinput' => $myinput
    ],
    [
        'myinput' => 'required|min:8'
    ]
);

if ($validator->fails()) {
    // The given data did not pass validation
}

// store in session
Session::push('myform.myinput', $myinput);
Session::push('myform.step', 2);

PS: on est deux francophones qui se causent en anglais :)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44153328

复制
相关文章

相似问题

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