改变 {{ 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
}) -%}
我有一个简单的联系表。在表单中,我想更改帮助文本的颜色
我在 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
}) -%}