我正在使用symfony2.我试图覆盖树枝中的默认div样式表单块.
首先,有没有或知道fieldset和list(ul – > li)方法的可用实现?
目前,我实现了这样的fieldset支持:
在类型中:
public function buildView(FormView $view,FormInterface $form,array $options) { $view->setAttribute('fieldsets',array( array( 'legend' => 'film.group.date','content'=> array( 'theaters_release_date','storage_media_release','storage_media_release_date','vod_release_date' )),array( 'legend' => 'film.group.country','content'=> array('countries')),)); }
我有一个名为fieldset.html.twig的模板,它使用视图的属性:
{% macro fieldset_block(fieldset,form) %} <fieldset{% if fieldset.subform is defined %} class="{{ fieldset.subform }}"{% endif %}> <legend>{{fieldset.legend | trans }}</legend> {% if fieldset.content is defined%} {% for row in fieldset.content %} {{ form_row(form[row]) }} {% endfor %} {% endif %} {% if fieldset.subform is defined %} {# Couldn't get some recursivity (simply call form widget) here... too bad #} {% if form[fieldset.subform].get('attr').fieldsets is defined %} {% for subfieldset in form[fieldset.subform].get('attr').fieldsets %} {{ _self.fieldset_block(subfieldset,form[fieldset.subform]) }} {% endfor %} {% else %} {% for row in form[fieldset.subform] %} {{ form_row(row) }} {% endfor %} {% endif %} {% endif %} {% if fieldset.items is defined%} {% for fieldset in fieldset.items %} {{ _self.fieldset_block(fieldset,form) }} {% endfor %} {% endif %} </fieldset> {% endmacro %} {% block form_widget %} {% for fieldset in form.get('attr').fieldsets %} {{ _self.fieldset_block(fieldset,form) }} {% endfor %} {% endblock %}