是否可以帮助我了解如何使用Symfony2自定义错误消息? 我想更改HTML布局,添加div,class等...
阅读指南时,它会将一段代码放入一个名为fields_errors.html.twig
的文件中,但它不会告诉您放置此文件的位置以及是否需要一些额外的配置。
有人能帮助我吗?
答案 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 entry和default 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 %}