改变 {{ form_help('from.name) }} 的颜色(Symfony 5.2)

Changing color of {{ form_help('from.name) }} (Symfony 5.2)

我有一个简单的联系表。在表单中,我想更改帮助文本的颜色

我在 FormType 中添加了 i. e.名称字段:

$builder
            ->add('name', TextType::class, ['help' => 'Pflichtfeld'])

在 Twig 中我有这个:

<div class="row">
    <div class="col">
        {{ form_label(ContactForm.name)}}
        {{ form_widget(ContactForm.name) }}
        {{ form_help(ContactForm.name, {'help_attr': {'class':'text-danger'}}) }}
    </div>
</div>

遗憾的是,class 只是在渲染时添加到现有的 class,因此被忽略了:

<small id="contact_name_help" class="text-danger form-text text-muted">Pflichtfeld</small>

'help_attr' 中定义的 class 覆盖了现有的 class 而不是刚刚添加的,我需要做什么?

是不是因为我在 twig.yaml 中使用 'bootstrap_4_layout.html.twig' 作为 form_theme?

非常感谢您的帮助!

是的,因为你使用了表单主题。

您可以在供应商中搜索 'bootstrap_4_layout.html.twig' 并实际查看代码。

{%- set help_attr = help_attr|merge({class: (help_attr.class|default('') ~ ' form-text text-muted')|trim}) -%}

无论块 'form_help'.

是什么,此行都会添加 class 'text-muted'

您可以 create your own form theme、扩展 'bootstrap_4_layout.html.twig' 并删除 'text-muted'。

{% extends 'bootstrap_4_form_layout.html.twig' %}

{% block form_help -%}
    {%- if help is not empty -%}
        {%- set help_attr = help_attr|merge({class: (help_attr.class|default('') ~ ' form-text')|trim}) -%}
        <small id="{{ id }}_help"{% with { attr: help_attr } %}{{ block('attributes') }}{% endwith %}>
            {%- if translation_domain is same as(false) -%}
                {%- if help_html is same as(false) -%}
                    {{- help -}}
                {%- else -%}
                    {{- help|raw -}}
                {%- endif -%}
            {%- else -%}
                {%- if help_html is same as(false) -%}
                    {{- help|trans(help_translation_parameters, translation_domain) -}}
                {%- else -%}
                    {{- help|trans(help_translation_parameters, translation_domain)|raw -}}
                {%- endif -%}
            {%- endif -%}
        </small>
    {%- endif -%}
{%- endblock form_help %}

您也可以有条件地删除 'text-muted'。

{%- set help_attr_class = help_attr.class|default('') -%}
{%- set help_attr = help_attr|merge({ 
    class: help_attr_class ~ ' form-text' ~ ('text-' not in help_attr_class ? ' text-muted')|trim 
}) -%}