我想在Symfony 3中自定义form_errors的渲染,因为我想获取(在我的Twig remplate中):
<div class="alert alert-danger">My error</div>
而不是:
<ul><li>My error</li></ul>
有可能吗?
我试过了:
{{ form_errors(form.name) ? '<div class="alert alert-danger">' ~ form_errors(form.name) ~ '</div>' : '' }}
但HTML没有被解释,它可能不是很干净..
这个(恢复供应商\ symfony \ symfony \ src \ Symfony \ Bridge \ Twig \ Resources \ views \ Form \ form_div_layout.html.twig第307行):
我超载了
{%- block form_errors -%}
{%- if errors|length > 0 -%}
<ul>
{%- for error in errors -%}
<li>{{ error.message }}</li>
{%- endfor -%}
</ul>
{%- endif -%}
{%- endblock form_errors -%}
通过:
{%- block form_errors -%}
{%- if errors|length > 0 -%}
<ul>
{%- for error in errors -%}
<li>{{ error.message }}</li>
{%- endfor -%}
</ul>
{%- endif -%}
{%- endblock form_errors -%}
但是没有定义变量“error”
提前感谢您的帮助
答案 0 :(得分:-1)
看看这个网站:
https://symfonycasts.com/screencast/symfony-forms/form-theme-create#play
您需要修改以下文件
vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_3_layout.html.twig
并搜索{% block form_errors -%}
块以对其进行修改。
您可以在此处查看更多信息:
但这不是正确的方法,好的方法是通过将该块复制到另一个树枝模板中来覆盖此文件,然后对其进行修改并将其调用到页面的树枝模板中。
以下是说明:
https://symfonycasts.com/screencast/symfony-forms/form-theme-create#play