我尝试为我的项目创建一个自定义表单主题,我想在其中呈现标签内的所有复选框字段,例如:
<label><input type="checkbox" /><label>
我发现我必须为此更改 choice_widget_expanded 块:
{% block choice_widget_expanded %}
{% spaceless %}
<div {{ block('widget_container_attributes') }}>
{% for child in form %}
{{ form_widget(child) }}
{{ form_label(child) }}
{% endfor %}
</div>
{% endspaceless %}
{% endblock choice_widget_expanded %}
问题是,当我将 form_label 块的内容复制到容器中而不是调用 form_label(child) 时,我并没有真正看到该块如何访问传递的变量(当我调用函数时它是子变量),以及如何在 form_label 块中调用 form_widget 函数:
{% block form_label %}
<label>{{ form_widget(?? what to put here??) }}</label>
{% endblock form_label %}
此外,如果我创建一个具有不同名称的块,例如“form_label_extra”并尝试调用它,它会引发错误,因为它不是注册的 twig 函数。
有谁知道这些变量是如何在表单块之间传递的,以及如何实现我的目标?