【问题标题】:Symfony2 customize form error messagesSymfony2 自定义表单错误信息
【发布时间】:2012-08-25 10:28:31
【问题描述】:

您能帮我了解如何使用 Symfony2 自定义表单中的错误消息吗? 我想更改 HTML 布局,添加 div、class 等...

阅读该指南,它提供了一段代码以放入一个名为 fields_errors.html.twig 的文件中,但它没有说明该文件的放置位置以及是否需要一些额外的配置。

有人可以帮帮我吗?

【问题讨论】:

  • 您要修改显示的错误消息,还是更改消息的标记/呈现方式?
  • 我想更改渲染、HTML 标签、类等。

标签: forms symfony customization messages


【解决方案1】:

您必须将模板放在您的捆绑包的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 entry和default field layout implementation

【讨论】:

    【解决方案2】:

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

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

    或单独(例如,如果您的字段是title)

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

    【讨论】:

      【解决方案3】:

      在 symfony3 中首先调用 config.yml 中的主题表单

      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 %}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-31
        • 1970-01-01
        • 1970-01-01
        • 2012-05-10
        • 1970-01-01
        • 2012-10-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多