2016-11-15 96 views
1

我正在渲染一個包含多個選項字段的表單。我想呈現一個特定的選擇字段不同於其他的。如何在Symfony Forms中自定義一個特定字段

我試着使用:

{% form_theme form 'MyBundle:Form:my-choice-field.html.twig' %} 
{{ form_widget(field) }} 

但是,這改變了這種形式的外觀和所有選擇字段的感覺。如果我將form_theme放在我想呈現不同的字段旁邊,它什麼也不做。

我曾想過創建一個新的表單類型,但它似乎過度使用,我只是想爲該特定領域的不同風格。有任何想法嗎?

回答

0

在DOC有描述how to personalize an individual field,例如定製僅product實體的name字段的區段:

{% form_theme form _self %} 

{% block _product_name_widget %} 
    <div class="text_widget"> 
     {{ block('form_widget_simple') }} 
    </div> 
{% endblock %} 

{{ form_widget(form.name) }} 

這裏,_product_name_widget片段定義用於其ID是該領域的模板(名稱爲product[name])。

您也可以覆蓋標記使用相同的方法的整場行:

{% form_theme form _self %} 

{% block _product_name_row %} 
    <div class="name_row"> 
     {{ form_label(form) }} 
     {{ form_errors(form) }} 
     {{ form_widget(form) }} 
    </div> 
{% endblock %} 

{{ form_row(form.name) }} 
+0

是的,我看到了,但由於某種原因,我不明白這是行不通的。此外,新塊被渲染兩次,這是預期的樹枝的行爲,但這是一個痛苦:https://github.com/symfony/symfony-docs/issues/5475 我會繼續努力,謝謝你的答案。 – madned

相關問題