Symfony2 — форма доступа из шаблона блока виджетов

Ниже показано, как отображается форма.

<fieldset class="properties">
    {% block form_content %}
        {{ form_widget(form) }}
    {% endblock %}
</fieldset>

Теперь я могу получить доступ к любому полю формы в этом шаблоне, например {{ form.description }}, все в порядке. Но вот у меня есть поле коллекции в такой форме, назовем его collection, я построил для этого пользовательский тип поля, шаблон блока для этого пользовательского типа customCollect_widget, все до этого момента хорошо, но если я хочу получить доступ к объекта коллекции в этом шаблоне виджета, я получил сообщение об ошибке, говорящее, что имя поля не существует в объекте формы.

Вот мой шаблон виджета:

{% block customCollect_widget %}
    {% spaceless %}
        {% for aa in form.collections %}
        <div>something</div>
        {% endfor %}
    ....
<% endblock %}

Проблема, как я понял, в том, что form — это не тот объект, который был передан коду выше. Есть ли обходной путь?


person Michael    schedule 23.05.2014    source источник


Ответы (1)


Ха, я решил это. В шаблоне виджета типа коллекции переменная form ссылается на сам тип поля формы, в данном случае на тип коллекции. Таким образом, чтобы прокрутить коллекцию в блоке виджетов, вы просто выполняете {% for child in form %}.

person Michael    schedule 24.05.2014