在Symfony2 / Twig中自定义表单小部件

时间:2012-03-10 02:59:17

标签: symfony twig

在我的表单模板中:

{% block field_label %}
{% spaceless %}
    <label {{ block('widget_attributes') }}></label>
{% endspaceless %}
{% endblock %}

我需要添加一些额外的class属性,当然还要显示标签(可能已翻译)。我发现{{ block('widget_attributes') }}存储了string个实际标签的属性。

是否有机会轻松修改array类型?在哪里可以找到所有block名称来定制外观以满足我的需求?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

Nevermind Notepad ++帮助我找到了文件:

vendor\symfony\src\Symfony\Bridge\Twig\Resources\views

定义了三种类型的标签:

{# Labels #}

{% block generic_label %}
{% spaceless %}
    {% if required %}
        {% set attr = attr|merge({'class': attr.class|default('') ~ ' required'}) %}
    {% endif %}
    <label{% for attrname,attrvalue in attr %} {{attrname}}="{{attrvalue}}"{% endfor %}>{{ label|trans }}</label>
{% endspaceless %}
{% endblock %}

{% block field_label %}
{% spaceless %}
    {% set attr = attr|merge({'for': id}) %}
    {{ block('generic_label') }}
{% endspaceless %}
{% endblock field_label %}

{% block form_label %}
{% spaceless %}
    {{ block('generic_label') }}
{% endspaceless %}
{% endblock form_label %}