Symfony 2 формы, встраивание коллекции во встроенную коллекцию

У меня есть структура данных, в которой у темы много вопросов (один ко многим), а у вопроса много ответов (один ко многим).

Я настроил Вопросы как встроенную коллекцию в форме Темы, и у меня все это работает на 100% благодарязапись поваренной книги.

Когда я пытаюсь разработать это, чтобы встроить набор форм ответов в форму вопросов, я сталкиваюсь с проблемой.

Атрибут data-prototype, который содержит форму прототипа на верхнем уровне, имеет полную глубину формы, поэтому включает в себя прототип для Вопроса и Ответа. Но он использует тот же заполнитель__name__ для каждого уровня.

<div id="topic_questions___name__">
<div class="control-group">
    <label for="topic_questions___name___questionText" class="control-label">question</label>
    <div class="form-row-errors"></div>
    <div class="controls">
        <textarea id="topic_questions___name___questionText" name="topic[questions][__name__][questionText]" required="required" class="input-block-level"></textarea>
    </div>
</div>
<div class="control-group">
    <label class="control-label">answers</label>
    <div class="controls">
        <div id="topic_questions___name___answers"     data-prototype="&lt;div class=&quot;control-group&quot;&gt;&lt;label class=&quot;control-label&quot;&gt;__name__label__&lt;/label&gt;&lt;div class=&quot;controls&quot;&gt;&lt;div id=&quot;topic_questions___name___answers___name__&quot;&gt;&lt;div class=&quot;control-group&quot;&gt;&lt;label for=&quot;topic_questions___name___answers___name___answerText&quot; class=&quot;control-label&quot;&gt;option&lt;/label&gt;&lt;div class=&quot;form-row-errors&quot;&gt;&lt;/div&gt;&lt;div class=&quot;controls&quot;&gt;&lt;input type=&quot;text&quot; id=&quot;topic_questions___name___answers___name___answerText&quot; name=&quot;topic[questions][__name__][answers][__name__][answerText]&quot; required=&quot;required&quot; maxlength=&quot;255&quot; /&gt;&lt;/div&gt;&lt;/div&gt;&lt;input type=&quot;hidden&quot; id=&quot;topic_questions___name___answers___name___sortOrder&quot; name=&quot;topic[questions][__name__][answers][__name__][sortOrder]&quot; /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;"></div>
    </div>
</div>

Вы можете увидеть действительно длинную строку внизу, которая, я думаю, является прототипом-прототипом (!) Для формы ответа. Я не вижу способа заменить только вопрос, связанный с[__name__] заполнители, а не связанные с ответом.

Делать нормальный

var newForm = prototype.replace(/__name__/g, collectionHolder.children().length);

при создании реального экземпляра формы вопрос, конечно, заменяет все экземпляры__name__ с тем же значением, поэтому при создании прототипа данных для формы ответа уже были заменены все заполнители.

Вот как выглядит прототип данных для формы ответа, когда я щелкнул, чтобы добавить реальную форму вопроса

<div class="control-group">
<label class="control-label">1label__</label>
<div class="controls">
    <div id="topic_questions_1_answers_1">
        <div class="control-group">
            <label for="topic_questions_1_answers_1_answerText" class="control-label">option</label>
            <div class="form-row-errors"></div>
            <div class="controls">
                <input type="text" id="topic_questions_1_answers_1_answerText" name="topic[questions][1][answers][1][answerText]" required="required" maxlength="255" />
            </div>
        </div>
    </div>
</div>

Как видите,__name__ заполнитель вообще не используется - он уже был заменен счетчиком для формы Вопроса при создании формы вопроса.

Можно ли достичь такого рода встроенной коллекции с множеством глубин с помощью механизма, предоставляемого Symfony?

Пока он пытается использовать один и тот же заполнитель для каждого «уровня», я не могу понять, как это сделать.

Ответы на вопрос(1)

Ваш ответ на вопрос