Symfony2 自定义复选框表单模板

Upv*_*ote 0 symfony-forms symfony

我正在使用引导程序表单主题。这是我的 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 %}
Run Code Online (Sandbox Code Playgroud)

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

Deb*_*rás 5

您需要覆盖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 %}
Run Code Online (Sandbox Code Playgroud)

可以从以下位置获取默认实现和字段模板的基础:
vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form/form_div_layout.html.twig