Symfony提供两个引导程序表单主题(以及其他),用于定义" checkbox_row"块。
我尝试在我的树枝模板中使用它们,只会导致以下错误:
The function "checkbox_row" does not exist in CompanyBundle:OrderingRule:new.html.twig at line 17
在我的config.yml文件中,我设置了:
form:
resources: ['bootstrap_3_layout.html.twig']
这是我的树枝
{{ form_start(form, {'attr': {'novalidate': 'novalidate'}, 'action': path('ordering_rule_create'), 'method': 'POST'}) }}
<div class="row">
<div class="col-lg-3">
<p class="small">Step 1 of 4:</p>
<p>Order Types</p>
</div>
<div class="col-lg-9">
{{ checkbox_row(form.isMealsIncluded) }}
{{ form_row(form.isCateringIncluded, {'label': 'Catering'}) }}
{{ form_row(form.billingType, {'label': null}) }}
</div>
</div>
<div class="row">
<div class="col-lg-3">
<p class="small">Step 2 of 4:</p>
<p>Applicable To</p>
</div>
<div class="col-lg-9">
{{ form_row(form.applicableType) }}
{{ form_row(form.companyLocations) }}
{{ form_row(form.companyDepartments) }}
</div>
</div>
<div class="row">
<div class="col-lg-3">
<p class="small">Step 3 of 4:</p>
<p>Select days and time<br>when users can order</p>
</div>
<div class="col-lg-9">
{{ form_row(form.applicableWeekdays) }}
{{ form_row(form.applicableTimeFrom) }}
{{ form_row(form.applicableTimeTo) }}
</div>
</div>
<div class="row">
<div class="col-lg-3">
<p class="small">Step 4 of 4:</p>
<p>Budget</p>
</div>
<div class="col-lg-9">
{{ form_row(form.budget) }}
</div>
</div>
{{ form_end(form) }}
答案 0 :(得分:2)
您通过呈现表单的方式混淆了表单片段
{% block checkbox_row -%}
<div class="form-group{% if not valid %} has-error{% endif %}">
{{- form_widget(form) -}}
{{- form_errors(form) -}}
</div>
{%- endblock checkbox_row %}
这是复选框行在bootstrap_3_layout.html.twig中呈现为片段的方式
但你不能使用这样的功能。
您可以通过在模板中定义块来覆盖它:
{% block checkbox_row -%}
{# Do whatever you want #}
{%- endblock checkbox_row %}
修改强>
如何呈现表单字段:
{{ form_row(form.field) }}
或
{{ form_label(form.field) }}
{{ form_errors(form.field) }}
{{ form_widget(form.field) }}
这是你如何渲染一个领域,没有别的办法。
您仍然可以通过{{form(form)}}
但片段checkbox_row
的存在旨在让您有一种很好的渲染自定义方式