2012-08-25 81 views
7

你能幫我理解如何在Symfony2中自定義錯誤信息嗎? 我想改變HTML佈局,添加DIV,類等等......Symfony2自定義表單錯誤信息

閱讀指導,它提供了一段代碼放在一個文件名爲fields_errors.html.twig但它並沒有告訴在哪裏把這個文件並且如果需要一些額外的配置。

有人可以幫我嗎?

+0

是否要修改顯示的錯誤消息,或更改消息的標記/呈現? – weyandch

+0

我想改變渲染,HTML標籤,類等。 – Bagbyte

回答

1

您可以自定義模板一次所有的錯誤消息:

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

或單獨(如果你的領域是例如冠軍

<div class="your_new_class"> 
    {{ form_errors(form.task) }} 
</div> 
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

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