Symfony2更改细枝形式主题中的类名

Symfony2更改细枝形式主题中的类名,symfony,twig,Symfony,Twig,我想覆盖form\u widget\u simple函数 {% block form_widget_simple %} {% spaceless %} {% set type = type|default('text') %} {% if errors|length > 0 %} {{dump(form.vars.attr)}} {% endif %} <input type="{{ type }}" {{ block('widget_

我想覆盖
form\u widget\u simple
函数

{% block form_widget_simple %}
{% spaceless %}
    {% set type = type|default('text') %}
    {% if errors|length > 0 %}
        {{dump(form.vars.attr)}}
    {% endif %}
    <input type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
{% endspaceless %}
{% endblock form_widget_simple %}
{%block form\u widget\u simple%}
{%spaceless%}
{%set type=type | default('text')%}
{%如果错误|长度>0%}
{{dump(form.vars.attr)}
{%endif%}
{%endspaceless%}
{%endblock form_widget_simple%}
但是我不知道如何在
if
语句中设置
form.vars.attr['class']

我什么时候设置form.vars.attr['class']='error'我得到错误
值的意外标记“标点符号”。“(“应为语句结尾块”)

如您所见,添加附加属性在
小部件属性块中处理。如果你看一看,你会看到一个,所有的属性。我认为一个简单的集合和合并现有的集合是可以做到的。因此,您的
表单小部件\u simple
块将如下所示

{% block form_widget_simple %}
{% spaceless %}
    {% set type = type|default('text') %}
    {% if errors|length > 0 %}
        {{dump(form.vars.attr)}}
    {% endif %}
    {% set attr = attr|merge({'class': (attr.class|default('') ~ ' your-css-class')|trim}) %}
    <input type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
{% endspaceless %}
{% endblock form_widget_simple %}
{%block form\u widget\u simple%}
{%spaceless%}
{%set type=type | default('text')%}
{%如果错误|长度>0%}
{{dump(form.vars.attr)}
{%endif%}
{%set attr=attr | merge({'class':(attr.class | default(“”)~'yourcss class')| trim})%}
{%endspaceless%}
{%endblock form_widget_simple%}

这将保留表单生成器中设置的每个类属性,并将css类添加为附加类。如果未定义类属性,则仅设置css类。

如您所见,在
窗口小部件属性
块中处理添加其他属性。如果你看一看,你会看到一个,所有的属性。我认为一个简单的集合和合并现有的集合是可以做到的。因此,您的
表单小部件\u simple
块将如下所示

{% block form_widget_simple %}
{% spaceless %}
    {% set type = type|default('text') %}
    {% if errors|length > 0 %}
        {{dump(form.vars.attr)}}
    {% endif %}
    {% set attr = attr|merge({'class': (attr.class|default('') ~ ' your-css-class')|trim}) %}
    <input type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/>
{% endspaceless %}
{% endblock form_widget_simple %}
{%block form\u widget\u simple%}
{%spaceless%}
{%set type=type | default('text')%}
{%如果错误|长度>0%}
{{dump(form.vars.attr)}
{%endif%}
{%set attr=attr | merge({'class':(attr.class | default(“”)~'yourcss class')| trim})%}
{%endspaceless%}
{%endblock form_widget_simple%}

这将保留表单生成器中设置的每个类属性,并将css类添加为附加类。如果未定义类属性,则仅设置css类。

是否要向
元素添加一个fix
class
(对于css类)属性?是的,向现有元素添加另一个
class
是否要向
元素添加fix
class
(对于css类)属性?是,将另一个
类添加到现有类