2012-09-06 16 views
6

Özel form alanı türüne ve bununla ilişkili bir form temasına sahibim. Bir sayfada, bu alanların çoğuna sahibim, ama özellikle de alanlardan birini değiştirmek istiyorum.Symfony Twig Form Belirli alanların teması

Aynı türdeki (ve aynı dosyadaki) belirli alanları farklı şekilde tanımlamanın bir yolu var mı?

bir basitleştirilmiş bir örnek:

form_fields.html.twig: (yerel tema dosyası) Benim form şablonuna

{% block my_dropdown_row %} 
<div> 
    {{ form_label(form) }} 
    {{ form_widget(form) }} 
    {{ form_errors(form) }} 
</div> 
{% endblock %} 

(bütün bu alanlar aynı türde - my_dropdown

{{ form_row(form.selectionA) }} 
{{ form_row(form.selectionB) }} 
{{ form_row(form.selectionC) }} 
{{ form_row(form.final_selection) }} 

Son alanı diğerlerine farklı şekilde nasıl biçimlendirebilirim? Bu widget'larda çok fazla kod var, daha az kopyalama daha iyi.

cevap

6
+0

ben bir yere görmüştü biliyordum! Teşekkürler :) – lopsided

+0

Merhaba, bağlantı verilen sayfa büyük olduğu için, cevap, sorunun ne ile ilgili olduğunu belirtmelidir. – COil

+0

Eh, bu bazı hızlı yorumlar ile açıklanabilir bir şey değil, bu yüzden tam olarak açıklandığı sayfaya bağlıyım –

0

Eski soru zaten cevaplanmış ancak daha detaylı bilgi olması güzel olurdu: İşte nasıl.

_ form type(block prefix) _ form item name _ açılımı _product_name_widget

{% form_theme form _self %} 

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

{{ form_widget(form.name) }} 

Nerede blok adı render function

http://symfony.com/doc/current/form/form_customization.html#how-to-customize-an-individual-field