2012-11-27 61 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 %}