我希望在Symfony 3中自定义form_errors的呈现,因为我希望获得(在我的Twig内存中):
<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没有被解释,它可能也不是很干净。
vendor\symfony\symfony\src\Symfony\Bridge\Twig\Resources\views\Form\form_div_layout.html.twig第307行的恢复:
I重载:
{%- block form_errors -%}
{%- if errors|length > 0 -%}
<ul>
{%- for error in errors -%}
<li>{{ error.message }}</li>
{%- endfor -%}
</ul>
{%- endif -%}
{%- endblock form_errors -%}By :
{%- block form_errors -%}
{%- if errors|length > 0 -%}
<ul>
{%- for error in errors -%}
<li>{{ error.message }}</li>
{%- endfor -%}
</ul>
{%- endif -%}
{%- endblock form_errors -%}但是变量"error“没有定义。
提前感谢您的帮助
发布于 2019-12-19 12:42:37
请看一下这个网站:
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
https://stackoverflow.com/questions/43392397
复制相似问题