如何 css 使用 bootstrap 和 twig 自定义 symfony 表单错误?

How to css customize symfony form errors with bootstrap and twig?

对于 symfony 形式和 twig,我使用

{{ form_errors(form) }}

bootstrap_4_horizontal_layout.html.twig,它工作正常,输出如下:

<span class="alert alert-danger d-block"><span class="d-block">
                    <span class="form-error-icon badge badge-danger text-uppercase">Error</span> <span class="form-error-message">Error</span>
                </span></span> 

但我需要对其进行自定义以翻译消息旁边的 bootstrap 错误标签。我在哪里可以自定义它?

您可以并且可能应该编写自己的表单主题并覆盖 form_errors 块以使其适应您的需要。作为参考:https://github.com/symfony/symfony/blob/537d373e0d8cb11fa70ddbe9559f2c4a741117a9/src/Symfony/Bridge/Twig/Resources/views/Form/bootstrap_4_layout.html.twig#L294

所以要实现您自己的表单主题,您只需要一个文件,比方说 my_form_style.html.twig:

{% extends "bootstrap_4_horizontal_layout.html.twig" %}

{# override the blocks you want ... or add some, this is the original #}
{%- block form_errors -%}
    {%- if errors|length > 0 -%}
        <span class="{% if form is not rootform %}invalid-feedback{% else %}alert alert-danger{% endif %} d-block">
            {%- for error in errors -%}
                <span class="d-block">
                    <span class="form-error-icon badge badge-danger text-uppercase">{{ 'Error'|trans({}, 'validators') }}</span> <span class="form-error-message">{{ error.message }}</span>
                </span>
            {%- endfor -%}
        </span>
    {%- endif %}
{%- endblock form_errors %}

然后您只需将表单主题设置为您的:

{% form_theme form "my_form_style.html.twig" %}

享受