2016-11-15 97 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

相关问题