我为我的项目创建了一个表单主题,其中包含以下内容:
{% block field_row %}
<div class="row">
{{ form_errors(form) }}
{{ form_label(form) }}
{{ form_widget(form, { 'attr': {'class': 'form-control'} }) }}
</div>
{% endblock field_row %}
我将这个主题应用于全局项目,现在我的所有表单字段都获得了额外的css类'form-control'。
我现在想要限制此覆盖仅限于不 选择&amp; 复选框字段类型。我该怎么做?
答案 0 :(得分:1)
当我做了类似的事情时,我感到有些恼火,因为它比我想象的要复杂得多。 可能有更好的方法,但这对我有用。
{% block form_row %}
{% set choice = false %}
{% if not form.vars.compound %}
{% for prefix in form.vars.block_prefixes %}
{% if prefix == 'choice' %}
{% set choice = true %}
{% endif %}
{% endfor %}
{% endif %}
{% if choice %}
<div class="row">
{{ form_label(form) }}
{{ form_errors(form) }}
{{ form_widget(form) }}
</div>
{% else %}
<div class="row">
{{ form_errors(form) }}
{{ form_label(form) }}
{{ form_widget(form, { 'attr': {'class': 'form-control'} }) }}
</div>
{% endif %}
{% endblock form_row %}
我建议使用form_row
代替form_field
,以便将来转换为2.3+,因为form_field
已从symfony 2.3 +中删除,但form_row
适用于2.1