Symfony2 + Bootstrap3:自定义 "block form_label" 导致翻转形式

Symfony2 + Bootstrap3: customization of "block form_label" causes flipped form

我想在标签的右侧放置一些带有链接的图标。几乎 100% 已解决(阅读 了解完整故事)

总而言之,我在另一个模板中覆盖了块 {%- block form_label -%},如下所示(我刚刚在下面添加了 "ADDED PART"):

{% extends "bootstrap_3_horizontal_layout.html.twig"%}

{%- block form_label -%}
    {% if label is not sameas(false) -%}
        {% if not compound -%}
            {% set label_attr = label_attr|merge({'for': id}) %}
        {%- endif %}
        {% if required -%}
            {% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %}
        {%- endif %}
        {% if label is empty -%}
            {%- if label_format is not empty -%}
                {% set label = label_format|replace({
                    '%name%': name,
                    '%id%': id,
                }) %}
            {%- else -%}
                {% set label = name|humanize %}
            {%- endif -%}
        {%- endif -%}
        <label{% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}>{{ label|trans({}, translation_domain) }}
        // START OF ADDED PART
        {% if 'history' in label_attr.class %}
            <a data-toggle="modal" href="#{{historyUrl}}"><span class="glyphicon glyphicon-time" aria-hidden="true"></span></a>
        {% endif %}
        {% if 'help' in label_attr.class %}
            <a data-toggle="modal" href="#{{helpUrl}}"><span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span></a>
        {% endif %}
        // END OF ADDED PART
        </label>
    {%- endif -%}
{%- endblock form_label -%}

一切正常,但我的表格被翻转了(右边的标签)。

这是我得到的:

我尝试了一些在各处添加 parent 的组合,但它会导致标签重复。

我怀疑那是因为我覆盖了 form_div_layout.html.twig 的一部分,后者后来被 bootstrap_3_horizontal_layout.html.twig 扩展,我扩展了后者。

有什么解决方法的提示吗?

我在 config.yml

中使用在全局级别分配它的表单模板
# Twig Configuration

twig:
    ...
    form_themes: ['Form/form_errors.html.twig']
    form:
        resources: ['Form/mylayout.html.twig']

编辑

部分解决,但我不喜欢这个解决方案,期待更优雅的解决方案。我做的是。

1) 创建一个使用 form_div_layout.html.twig 添加我的标签自定义的模板。

2) 复制粘贴 bootstrap_3_layout.html.twig 更改第一行使其使用 1)

3) 复制粘贴 bootstrap_3_horizontal_layout.html.twig 更改第一行以使其扩展 2)

4) 最后使用 3) 作为表单主题

有点矫枉过正...非常欢迎其他解决方案!

似乎您在 bootstrap 中损失了一些 类,这就是您的标记损坏的原因。 试试这个form_label块^

{% block form_label -%}
{% spaceless %}
    {% set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' control-label ' ~ block('form_label_class'))|trim}) %}
    {% if label is not sameas(false) -%}
        {% if not compound -%}
            {% set label_attr = label_attr|merge({'for': id}) %}
        {%- endif %}
        {% if required -%}
            {% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' required')|trim}) %}
        {%- endif %}
        {% if label is empty -%}
            {%- if label_format is not empty -%}
                {% set label = label_format|replace({
                '%name%': name,
                '%id%': id,
                }) %}
            {%- else -%}
                {% set label = name|humanize %}
            {%- endif -%}
        {%- endif -%}
        <label{% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}>
            {{ label|trans({}, translation_domain) }}
            // START OF ADDED PART
            {% if 'history' in label_attr.class %}
                <a data-toggle="modal" href="#{{historyUrl}}"><span class="glyphicon glyphicon-time" aria-hidden="true"></span></a>
            {% endif %}
            {% if 'help' in label_attr.class %}
                <a data-toggle="modal" href="#{{helpUrl}}"><span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span></a>
            {% endif %}
            // END OF ADDED PART
        </label>
    {%- endif -%}
{% endspaceless %}
{%- endblock form_label %}

我刚刚为 set lost 类 添加了 bootstrap:

所需的第一行
{% set label_attr = label_attr|merge({class: (label_attr.class|default('') ~ ' control-label ' ~ block('form_label_class'))|trim}) %}