2017-02-15 129 views
3

很多像Laravel这样的框架都没有提供关于如何进行前端验证的任何建议。这是可以理解的来自后端框架。保持与前端验证同步的后端验证

但是事先提供javascript验证是非常好的,这样用户在填写表单时可以立即看到是否有问题。

我知道如何使用Laravel之类的方法对后端进行验证,并且我知道如何在JavaScript前端进行验证。然而,问题在于很多框架不能跨越这个前端/后端边界,但我需要让他们的验证与彼此同步。

我不能在验证错误的前端不再适用于后端验证。人们如何处理这个问题?

人们通常只是做后端验证,并将一个flashbag或错误传递给用户,而只是简单地跳过前端验证?我觉得试图保持前端和后端的验证是一样的,可能会出现错误,而且还有一些工作。

编辑

虽然已经存在,因为我喜欢它的一些更多的输入问题的答案。人们正在使用什么样的定制解决方案或如何有效解决这个问题的想法都是受欢迎的。

+0

我想你可以在PHP中编写代码,生成JavaScript以将相同的服务器端规则应用于客户端。 – GordonM

回答

1

您可以自己同步它。将laravel验证规则传递给一个视图并处理它们。有一些这样的例子。

至于我,我通常会遇到完整的后端验证与简单的前端。只有最小和最大长度。 Front无法检查值是否唯一。

https://dotdev.co/form-validation-using-vue-js-2-35abd6b18c5d#.q0r9nkibc

还有一个办法,但它稍微增加服务器的负载。首先发送一个标志为validate=true的表格,该表格仅用于验证表格。和第二个请求一样,即验证+操作。它需要一个简单的js库来处理它,而不是一个巨大的重构。

+0

这工作正常,当你正在一个小应用程序,但与一个巨大的应用程序与几十个形式,其中事情变化了很多我真的没有看到这是一个可行的选择。如果我要改变前台或后台的某些东西,我会时刻记住要保持对方的更新,否则我会慢慢地在各地得到不一致的逻辑。即使我们只是在谈论需求检查等。这看起来像是一段时间内逻辑碎片化的头痛。 –

+0

至于js验证:*如果我要改变前端或后端的东西,我会不断记得保持对方更新*为什么?你在一个地方有规则,如[“name”=>“required | max:10”],并将其传递给视图。 –

+0

如果您将这些规则从PHP传递给JavaScript,则您已经为其创建了一个目前尚未实现的系统。我希望这些规则也适用于Javascript验证。如果在发送数据之前可以使用Javascript检查验证,则无需发送表单和浪费资源。 –