【发布时间】:2014-04-15 14:12:44
【问题描述】:
正如标题所说,我正在尝试将引导程序 form-control 类附加到每个生成的输入或小部件,因为它们在 twig 中被调用。我正在尝试使用表单主题来轻松制作看起来相同的多个表单。
我正在以与设法使其与标签一起使用的相同方式尝试它。但是因为form_widget 块被其他块继承(form_widget_simple & form_widget_compound)。
这是给我带来麻烦的代码
{% block form_widget %}
{% spaceless %}
<div class="col-sm-10">
{% set attr = attr|merge({'class': (attr.class|default('') ~ ' form-control ')|trim}) %}
{% if compound %}
{{ block('form_widget_compound') }}
{% else %}
{{ block('form_widget_simple') }}
{% endif %}
</div>
{% endspaceless %}
{% endblock form_widget %}
另外,col-sm-10 div 仅在从 form_widget_simple 继承的小部件上呈现,而不是在复合小部件上呈现。
我不知道我是否已经足够清楚地解释了这一点,但非常感谢任何帮助。
{% block form_label %}
{% spaceless %}
{% 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 %}
{% set label = name|humanize %}
{% endif %}
{% set label_attr = label_attr|merge({'class': (label_attr.class|default('') ~ ' col-sm-2 control-label ')|trim}) %}
<label {% for attrname, attrvalue in label_attr %} {{ attrname }}="{{ attrvalue }}" {% endfor %}>{{ label|trans({}, translation_domain) }}</label>
{% endif %}
{% endspaceless %}
{% endblock form_label %}
【问题讨论】:
-
你已经在使用application-wide customizations了吗? 以与我设法使其与标签一起使用的相同方式请显示执行此操作的代码,以便我们可以更好地为您提供帮助。
-
仅用于表单控件、标签、小部件和错误。我已经发布了标签脚本,我尝试以相同的方式进行操作,但似乎它被树枝继承覆盖了。而且我不想为每个小部件复制粘贴相同的代码,因为那样会违背目的,不是吗?