以下是我试图覆盖的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的所有值创建块...
任何方式动态地执行此操作?
答案 0 :(得分:0)
我相信你需要扩展Twig。然后,您可以在PHP中指定代码,并引入条件。