Symfony2自定义表单错误消息

时间:2012-08-25 10:28:32

标签: forms symfony customization messages

是否可以帮助我了解如何使用Symfony2自定义错误消息? 我想更改HTML布局,添加div,class等...

阅读指南时,它会将一段代码放入一个名为fields_errors.html.twig的文件中,但它不会告诉您放置此文件的位置以及是否需要一些额外的配置。

有人能帮助我吗?

3 个答案:

答案 0 :(得分:5)

您必须将模板放在捆绑包的Resourses/views/文件夹中。例如,

{# Vendor/YourBundle/Resourses/views/form_fields.html.twig #}

{% extends 'form_div_layout.html.twig' %}

{% block form_errors %}
    {# your form error template #}
{% endblock form_errors %}

{# other customized blocks #}

然后在您的表单页面模板中

{% extends your:page:layout %}

{% form_theme form  'VendorYourBundle::form_fields.html.twig' %}

 {{ form_errors(form.field) }}
 {# ..... #}

有关更多选项和实施参考,请参阅form theme cookbook entrydefault field layout implementation

答案 1 :(得分:1)

您可以在模板中一次自定义所有错误消息:

<div class="your_new_class">
    {{ form_errors(form) }}
</div>

或单独(例如,如果您的字段标题

<div class="your_new_class">
    {{ form_errors(form.task) }}
</div>

答案 2 :(得分:1)

在symfony3中首先调用config.yml中的de theme表单

twig:
debug:            "%kernel.debug%"
strict_variables: "%kernel.debug%"
form_themes: 
    - 'YourBundle:FormTheme:error.html.twig'

Twig error.html.twig示例

{% block form_errors %}
{% spaceless %}
    {% if errors|length > 0 %}
   <div class="alert alert-danger">
        {% for error in errors %}
     <strong>{{ error.message }}</strong>
        {% endfor %}
    </div>
    {% endif %}
{% endspaceless %}
{% endblock form_errors %}