我有一個視圖,我試圖根據http://symfony.com/doc/current/cookbook/form/form_customization.html#how-to-customize-an-individual-field覆蓋單個字段的表單主題。小枝form_theme_self自定義個人字段
的觀點看起來是這樣的:
{% form_theme form _self %}
{% block _my_form_foo_widget %}
<div class="input-append">
{{ block('number_widget') }}
<span class="add-on">%</span>
</div>
{% endblock %}
<form>
{{ form_row(form.foo) }}
{{ form_row(form.bar) }}
</form>
一切看起來都如預期的foo和酒吧行,然而,_my_form_foo_widget
塊本身也包含在輸出中,即:
<div class="input-append">
<span class="add-on">%</span>
</div>
<form>
<div>
<label for="my_form_foo">Bar</label>
<div class="input-append">
<input type="text" id="my_form_foo" name="my_form[foo]">
<span class="add-on">%</span>
</div>
</div>
<div>
<label for="my_form_bar">Foo</label>
<input type="text" id="my_form_bar" name="my_form[bar]">
</div>
</form>
我不知道我做錯了什麼。作爲一種解決方法,我只是用HTML註釋封裝了這個塊。
我在Symfony 2.4.1和Twig 1.15.0上。
沒有你清除緩存?也許這是一個與'%'符號有關的樹枝解析錯誤。你有沒有嘗試將''中的'%'改爲另一個字符(即'+')呢?如果有效,你可以嘗試用'{{'%'}}'替換'%'。此外,您可以嘗試將覆蓋區塊移至不同的模板(即'form_theme.html.twig')並使用'{%form_theme form'form_theme.html.twig'%}' – nifr
@nifr清除緩存並更改「 %'對其他事物沒有影響。 – enoshixi
你沒有嘗試我的建議與外部form_theme :)你不擴展另一個模板 - 這就是爲什麼直接渲染塊。 – nifr