У меня есть простая контактная форма. В форме я хотел бы изменить цвет текста справки
В FormType я добавил i. е. поле имени:
$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>
К сожалению, класс просто добавляется к существующему классу при рендеринге и поэтому игнорируется:
<small id = "contact_name_help" class = "text-danger form-text text-muted">Pflichtfeld</small>
Что мне нужно сделать, чтобы класс, определенный в 'help_attr', перезаписывал существующие классы, а не просто добавлялся?
Это потому, что я использую «bootstrap_4_layout.html.twig» в качестве form_theme в моем twig.yaml?
Помощь очень ценится!





Да, это потому, что вы используете тему формы.
Вы можете найти «bootstrap_4_layout.html.twig» среди поставщиков и увидеть код.
{%- set help_attr = help_attr|merge({class: (help_attr.class|default('') ~ ' form-text text-muted')|trim}) -%}
Эта строка добавляет класс text-muted независимо от того, что для блока form_help.
Вы можете создать свою собственную тему формы, расширить '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
}) -%}
Может быть, вы можете помочь мне с удалением условно. Если я добавлю строки, я получаю ошибку Unclosed "{"., и она показывает вторую строку, которую вы опубликовали. Я не могу найти проблему. Для меня все теги закрыты. Я сравнил букву в букву...
большое спасибо. Мне просто нужно многому научиться. Я создал свой собственный шаблон для этого, и это сработало. Придется углубиться в предоставленную вами ссылку, а также в ссылку для {%, которую я никогда раньше не видел :)