Symfony2将表单集合呈现为ul

时间:2012-03-03 15:26:14

标签: php forms symfony render twig

我收集了很多表格,我想以这种方式呈现:

<form>
 <fieldset>
  <legend>Form One</legend>
  <ul>
   <li><label>Label 1</label><input /></li>
   <li><label>Label 2</label><input /></li>
   <li><label>Label 3</label><input /></li>
   <li><label>Label 4</label><input /></li>
   <li><label>Label 5</label><input /></li>
   <li><label>Label 6</label><input /></li>
  </ul>
 </fieldset>

 <fieldset>
  <legend>Form Two</legend>
  <ul>
   <li><label>Label 1</label><input /></li>
   <li><label>Label 2</label><input /></li>
   <li><label>Label 3</label><input /></li>
   <li><label>Label 4</label><input /></li>
   <li><label>Label 5</label><input /></li>
   <li><label>Label 6</label><input /></li>
  </ul>
 </fieldset>
</form>    

等等。

我现在已经尝试了几个小时来使用表单主题,我甚至玩过vendor / symfony / src / bridge / Twig / Ressources / view / Form / form_div_layout.html.twig

但是我没有成功,twig总是使用li而不是fieldset来渲染子表单等等

有人知道我能做什么吗?

{% use "form_div_layout.html.twig" %}


{% block field_row %}
<li>
{{ form_label(form, label|default(null)) }}
{{ form_widget(form) }}
</li>    
{% endblock field_row %}


{% block form_errors %}
{% if errors|length > 0 %}
{{ block('field_errors') }}
{% endif %}
{% endblock form_errors %}


{% block field_errors %}
{% if errors|length > 0 %}
<ul>
{% for error in errors %}
<li>{{   error.messageTemplate|trans(error.messageParameters, 'validators') }}</li>
{% endfor %}
</ul>
{% endif %}
{% endblock field_errors %}

{% block hidden_row %}
<b>{{ form_widget(form) }}</b>
{% endblock hidden_row %}


{% block form_widget %}
<ul {{ block('widget_container_attributes') }}>
{{ block('field_rows') }}
{{ form_rest(form) }}
</ul>
{% endblock form_widget %}


{% block collection_widget %}
{% if prototype is defined %}
    {% set attr = attr|merge({'data-prototype':     form_row(prototype) }) %}
{% endif %}
{{ block('form_widget') }}
{% endblock collection_widget %}

1 个答案:

答案 0 :(得分:0)

您的窗体小部件用于表单的文件本地化是什么?

config.yml你应该

# Twig Configuration
twig:
    debug:            %kernel.debug%
    strict_variables: %kernel.debug%
    form:
        resources:
            - 'YourBundle:Form:fields.html.twig'

或者您可以使用表单在同一模板中定义窗口小部件,但在这些窗口小部件添加之前

{% form_theme form _self %}