我目前正在尝试覆盖 Symfony 2 中复选框块的默认呈现,但我无法达到预期的结果。
我创建了一个名为“类别”的 Doctrine 实体,并且所有视图都已正确创建。
但是 Twig 表单中的默认复选框标签位置不正确。
PS.:我从这里的元素中删除了属性,以使其更易于阅读。
原样:
<label>Field</label>
<input type="checkbox" />
应该:
<label><input type="checkbox" />Field</label>
我创建了一个用于覆盖块本身的模板:
{% block checkbox_widget %}
{% spaceless %}
<label for="{{ id }}">
<input type="checkbox" {{ block('widget_attributes') }}{% if value is defined %} value="{{ value }}"{% endif %}{% if checked %} checked="checked"{% endif %} />
{{ label|trans({}, translation_domain) }}</label>
{% endspaceless %}
{% endblock checkbox_widget %}
并在我的 edit.html.twig 文件中调用它:
{% extends '::base.html.twig' %}
{% form_theme edit_form 'AppGallerySiteBundle:Form:fields.html.twig' %}
在表格内,我放置了以下几行:
{{ form_errors(edit_form) }}
{{ form_row(edit_form) }}
{{ form_widget(edit_form) }}
{{ form_rest(edit_form) }}
这有效并且复选框被覆盖,但是来自默认树枝表单模板的普通标签继续显示,并且我覆盖的复选框没有显示其中的标签,导致:
<label>Field</label>
<label><input type="checkbox" /></label>
它应该在哪里:
<label><input type="checkbox" />Field</label>
希望有人能帮忙。提前致谢。