在Symfony 2.3中,多元化不适用于表单的验证消息

时间:2013-09-20 10:33:02

标签: validation symfony translation sonata-admin symfony-sonata

我使用的是Symfony 2.3。

我在控制器中使用$this->createFormBuilder创建了简单的订单表单。我正在验证一个Doctrine字段:

/**
 * @Assert\Length(min=3)
 */
protected $name;

但是,验证失败后,我在字段附近收到重复的错误消息:

  

此值太短。它应该有3个字符或更多。|这个值太短。它应该有3个或更多字符。

我的这个元素的模板很简单:

{{ form_errors(form.name) }}
{{ form_label(form.name) }}
{{ form_widget(form.name) }}

除了重复的验证错误消息之外,其他所有内容似乎都按预期工作。好像多元化不会起作用。有人建议为什么会失败?

修改

似乎SonataAdminBundle正在覆盖form_errors块。如何从非奏鸣曲控制器中删除该覆盖?

2 个答案:

答案 0 :(得分:1)

也许奏鸣曲的模板与原始模板的最新更改不同步。

您可以在github上创建PR或问题,谢谢

答案 1 :(得分:0)

问题是我在config.yml中设置了这个:

# Twig Configuration
twig:
    debug:            %kernel.debug%
    strict_variables: %kernel.debug%

    form:
        resources:
            - 'SonataAdminBundle:Form:silex_form_div_layout.html.twig'
            - 'SonataFormatterBundle:Form:formatter.html.twig'

silex_form_div_layout.html.twig覆盖form_errors Twig阻止,删除它可以解决问题。