1

这是我要覆盖的 Twig 字段:github

我有一个已使用此自定义表单主题修改的复选框列表:

{% block choice_widget_expanded %}
{% spaceless %}
    <div {{ block('widget_container_attributes') }}>
    {% for child in form %}
        <div class="checkbox_row">
        {{ form_widget(child) }}
        {{ form_label(child) }}
        </div>
    {% endfor %}
    </div>
{% endspaceless %}
{% endblock choice_widget_expanded %}

我尝试使用添加一个类{{ form_row(form.fieldName), {'attr':{'class':'myclass'}}) }}

但这只会给div#formName_fieldName. 接下来我尝试添加一个自定义块

{% block _formName_fieldName_widget %}
{% spaceless %}
    <input type="checkbox" {{ block('widget_attributes') }} value="{{ value }}"  class="myclass_{{ value }}" />

{% endspaceless %}
{% endblock choice_widget_expanded %}

请注意,我还包括了我想要的值myclass_1, myclass_2等。

这个问题是块接收一个数组所以它应该是这样的

{% block _fb_post_facebook_pages_widget %}
{% spaceless %}
    <div {{ block('widget_container_attributes') }}>
    {% for child in form %}
        {{ form_widget(child) }}
        {{ form_label(child) }}
    {% endfor %}
    </div>
{% endspaceless %}
{% endblock choice_widget_expanded %}

但是,如果我想将类添加到特定的复选框,我需要编写如下内容:

{% block _formName_fieldName_X_widget %}
{% spaceless %}
    <input type="checkbox" {{ block('widget_attributes') }} value="{{ value }}"  class="myclass_{{ value }}" />

{% endspaceless %}
{% endblock choice_widget_expanded %}

其中 X 将是我为 fieldName 拥有的值......显然这些值可以是任何值,所以我不能只为 1-1000000000000 的所有值创建块......

有什么办法可以动态地做到这一点?

4

1 回答 1

0

我相信你需要扩展 Twig。然后,您可以在 PHP 中指定代码并引入条件。

http://twig.sensiolabs.org/doc/advanced.html

于 2013-10-11T20:53:52.623 回答