在Symfony2中自定义客户端表单验证程序

时间:2014-01-20 23:20:58

标签: php symfony customization

虽然我从未使用过symfony,但我决定用symfony2框架做一个大项目我的第一次冒险。

我创建了一个注册/登录系统,但我遇到了一个小的自定义问题:

enter image description here

正如您在上一个屏幕截图中看到的,有一个Symfony2默认客户端验证器,我想要的是自定义它,更改其样式,外观和翻译英文文本(截图BTW中的法文)使用翻译对象。

这是表格树枝视图的一部分:

<li>
   {{ form_errors(registerForm.password,{'attr':{'class' : 'err errx1'}}) }}
   {{ form_widget(registerForm.password,{'attr':{'class' : 'inpt mdx2','placeholder':'signup.password'| trans | capitalize}}) }}
        </li>

是否有任何文档提供此问题的解决方案?

1 个答案:

答案 0 :(得分:1)

实际上,您所看到的是默认的HTML5客户端验证。这与Symfony没有任何关系,除了您可以配置是否需要它。如果您不希望显示此验证消息,则可以在呈现表单时添加以下内容:

{{ form_start(form, {'attr': {'novalidate': 'novalidate'}}) }}

如果您只想为特定行禁用它,form_row也是如此。

请查看The docs了解详情。

如果您想从服务器自定义验证错误,那就更多了。我将提交请求viz ajax,然后使用响应来应用我的自定义验证错误。有几种方法可以做到这一点,只取决于你感到满意。