2012-11-03 38 views
7

嵌入收集我有一個數據結構,其中一個主題,有許多問題(一對多),以及一個問題有很多答案(一對多)。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="&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提供的機制是否可以實現這種多深度嵌入式集合?

只要它試圖爲每個'級別'使用相同的佔位符,那麼我看不出如何。

回答