Formularze Symfony 2, osadzanie kolekcji w osadzonej kolekcji

Mam strukturę danych, w której temat ma wiele pytań (od jednego do wielu), a pytanie ma wiele odpowiedzi (od jednej do wielu).

Skonfigurowałem Pytania jako osadzoną kolekcję w formularzu Temat i wszystko to działa w 100% dziękiwpis książki kucharskiej.

Gdy próbuję to rozwinąć, aby osadzić kolekcję formularzy odpowiedzi w formularzu pytania, pojawia się problem.

Atrybut data-prototype, który zawiera formularz prototypowy na najwyższym poziomie, ma pełną głębię formy, więc zawiera prototyp zarówno pytania, jak i odpowiedzi. Ale używa tego samego symbolu zastępczego__name__ dla każdego poziomu.

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

Możesz zobaczyć naprawdę długą linię na dole, która, jak sądzę, jest prototypem-prototypem (!) Dla formularza odpowiedzi. Nie widzę sposobu, aby zastąpić tylko związane z tym pytanie[__name__] symbole zastępcze, a nie te powiązane.

Robię normalnie

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

podczas tworzenia rzeczywistej instancji formularza pytania oczywiście zastępuje wszystkie wystąpienia__name__ o tej samej wartości, więc gdy tworzony jest prototyp danych dla formularza Odpowiedź, już zastąpiono wszystkie symbole zastępcze.

Tak wygląda prototyp danych dla formularza Odpowiedź, gdy kliknąłem, aby dodać prawdziwy formularz pytania

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

Jak widzisz,__name__ symbol zastępczy w ogóle nie działa - został już zastąpiony liczbą dla formularza pytania, gdy formularz zapytania został utworzony.

Czy możliwe jest uzyskanie tego rodzaju wbudowanej kolekcji o wielu głębokościach przy użyciu mechanizmu Symfony?

Dopóki próbuje użyć tego samego symbolu zastępczego dla każdego „poziomu”, nie widzę, jak to zrobić.

questionAnswers(1)

yourAnswerToTheQuestion