Symfony2自定义复选框表单模板

时间:2014-06-17 19:04:56

标签: symfony symfony-forms

我正在使用bootstrap形式主题。这是我的fields.html.twig表单模板:

{% block form_row %}
{% spaceless %}
    <div class="form-group {% if errors|length > 0 %}has-error{% endif %}">
        {{ form_label(form, label|default(null), { 'label_attr': {'class': 'control-label'} }) }}
        {{ form_errors(form) }}
        {% set class='' %}
        {% if attr.class is defined %}
            {% set class = attr.class %}
        {% endif %}
        {{ form_widget(form, { 'attr': {'class': 'form-control '  ~ class} }) }}
    </div>
{% endspaceless %}
{% endblock form_row %}

问题是它不尊重复选框。它呈现像普通输入字段的复选框。知道如何基于上述模板为复选框设置模板吗?

1 个答案:

答案 0 :(得分:4)

您需要覆盖fields.html.twig中与复选框相关的广告块。根据您的字段类型(折叠,展开),定义以下块:

{% block choice_widget_collapsed %}
    {% spaceless %}

    {% endspaceless %}
{% endblock choice_widget_collapsed %}


{% block choice_widget_expanded %}
    {% spaceless %}

    {% endspaceless %}
{% endblock choice_widget_expanded %}

{# you can even override the way options are rendered #}
{% block choice_widget_options %}
    {% spaceless %}

    {% endspaceless %}
{% endblock choice_widget_options %}

对于默认实现,您可以从以下位置获取字段模板的基础:
供应商/ symfony的/ symfony的/ SRC / Symfony的/网桥/枝条/资源/视图/窗体/ form_div_layout.html.twig