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}) %}
我想在标签的右侧放置一些带有链接的图标。几乎 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}) %}