请问有没有把 Laravel 表单验证的逻辑同步到前端的方案?
1

我觉得Laravel的表单验证很优雅,想着前端验证如果也能用上就完美了,其次是既然在后端写了一份验证逻辑,前端就没必要在写一遍各种require等,直接借用后端里写的,不知道有没有什么组件或者方案能实现?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 13

@lx1036 您没明白我的意思,我的意思不是舍弃掉后端验证转移到前端,而是说借用后端的验证规则,前端就不在用写规则了,这样一套规则,前后端通用(个别特殊的验证规则特殊处理)。但单纯的laravel验证规则肯定前端没法直接用,因此问问有没有相应的package。

1年前
ADKi

后端验证 直接提交 如果后端验证失败 laravel 有个 error 返回直接在页面输出 详情参考文档,自动刷新页面时就会显示错误信息了。http://admin.amyair.cn/login 这个前端就没做验证过都是刷新输出的后端 error

1年前

@ADKi 如果做的是一个内网系统,估计这么做还是可以,如果是一个公网互联网项目,有前端验证的话用户体验应该会更好些吧

1年前
ADKi

那个是我写的一个demo,如果 前端validate 是提交表单时验证 那就没什么区别,要是移出焦点的话 那就ajax访问后台请求数据(文档里有说明ajax的错误返回),或者使用前端验证插件了

1年前

有个思路,你可以写个接口,每个表单输入框更新的话,将数据和验证规则名称带过去,接口根据规则名称和数据进行校验返回。

因为 laravel 的验证规则是用后端 PHP 写的,如果需要验证,就要到后端进行处理。

1年前

@zhuzhichao
@lx1036
实际上我的思路如下,写一个方法读到已经定义的validation ,然后送到前端,然后在前端实现和后端差不多的验证代码去验证。

1年前

理论上应该是可以的。将你后端定义的规则输出到前端,前端根据规则写校验逻辑

1年前
s4p3r

不知道你说的是不是这个, https://github.com/proengsoft/laravel-jsvalidation

1年前

@s4p3r 大概看了一下,应该就是您说的这个

1年前
lijinma

理论上是可以的。

但是 获取 validation 配置的接口想办法写的优雅,如果是我,我会重写一下 validate 方法。

比如有一个接口:创建资源 POST /resources

['email' => 'test@www.com']

获取这个接口 validate_rules
POST /resources?validate_rules

修改 controller 中的 validate 方法。

    public function validate(Request $request, array $rules, array $messages = [], array $customAttributes = [])
    {
        if ($request->get('validate_rules') {
            return $rules
        }
        parent::validate($request, $rules, $messages, $customAttributes);
    }

可能这是一个非常快的方式解决你的需求,不需要做很多的修改,但是获取 validate_rules 语义上不一定好。

获取这个接口 validate_rules
POST /resources?validate_rules

1年前
lijinma

以上只是思路,你考虑下,上面的代码有点小问题,应该是

        if ($request->has('validate_rules') {
            return $rules
        }
1年前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!