2012-11-27 63 views
1

我正在用symfony2中的formbuilder創建一個表單。在這種形式下,我想放一些自定義的HTML,但我不想對整個事物進行模板化,例如。我想用{{ form_widget(form) }}。是否可以在字段之間添加一些自定義的HTML?Symfony2 formbuilder HTML字段

@EDIT:以使其更清晰

$builder 
    ->add('description') 
    ->add('thisIsMyHTMLField', '<p>Render this HTML</p>') //This is just custom html 
    ->add('talentName') 
    ->add('keywords') 
    ->add('differentiation') 
+0

所以,換一種方式,你想自定義模板中form_widget(form)方法呈現的html,對吧? –

+0

不是真的更像是有一個自定義字段,我猜,這只是呈現HTML我放入,而不是一個表單字段。但爲此創建一個自定義表單域看起來像這樣矯枉過正。 – Nealv

+0

但是,爲什麼不分開渲染它們時,只需在字段之間添加html代碼即可。這是一個更清潔的解決方案。 您還可以使用未映射到表單對象的其他字段。 –

回答

1

一個不可能性的方法(即節省你的{{ form_widget() }}覆蓋默認行爲)是做這樣的事情

{% for fields in form %} 
{% if fields.vars.name != '_token' %} 
    {% if fields.vars.errors|length %} <div="errors"> 
    {% else %} <div class="{{ cycle(["even","odds"], loop.index) }}"> 
    {% endif %} 
    {{ form_label(fields) }} 
    {{ form_widget(fields) }} 
    {{ form_errors(fields) }} 
    </div> 
{% endif %} 
{% endfor %}