嵌入收集我有一個數據結構,其中一個主題,有許多問題(一對多),以及一個問題有很多答案(一對多)。Symfony的2種形式,在嵌入式收集
我已經建立了問題作爲主題的形式嵌入的集合,它所有的工作多虧了cookbook entry 100%我有。
當我嘗試開發這種嵌入的答案形式的集合中的形式問題,然後我的一個問題運行英寸
包含在頂層的原型形式中有形式的全深度的數據原型屬性,所以包括原型兩個問題與答案。但它爲每個級別使用相同的佔位符__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="<div class="control-group"><label class="control-label">__name__label__</label><div class="controls"><div id="topic_questions___name___answers___name__"><div class="control-group"><label for="topic_questions___name___answers___name___answerText" class="control-label">option</label><div class="form-row-errors"></div><div class="controls"><input type="text" id="topic_questions___name___answers___name___answerText" name="topic[questions][__name__][answers][__name__][answerText]" required="required" maxlength="255" /></div></div><input type="hidden" id="topic_questions___name___answers___name___sortOrder" name="topic[questions][__name__][answers][__name__][sortOrder]" /></div></div></div>"></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提供的機制是否可以實現這種多深度嵌入式集合?
只要它試圖爲每個'級別'使用相同的佔位符,那麼我看不出如何。