Symfony2 визуализирует коллекцию форм как ul - PullRequest
1 голос
/ 03 марта 2012

Я получил большую коллекцию форм, которые я хотел бы отобразить следующим образом:

<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>    

и т. Д.

Теперь я часами пытался получить это, используя темы форм, ядаже поиграл с вендором / symfony / src / bridge / Twig / Ressources / view / Form / form_div_layout.html.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 голосов
/ 01 июня 2012

Что такое локализация файла с вашими виджетами для формы?

В вашем config.yml должно быть

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

Или вы можете определить свои виджеты в том же шаблоне, что и форма, но до того, как эти виджеты добавят

{% form_theme form _self %}
...