2012-02-26 72 views
0

好吧,這是一個相當尷尬的問題。我使用的Symfony和後collection形式I型Symfony2沒有渲染收集表格數據 - 原型

'prototype' => true, 
'allow_add' => true 

配置它,我希望它打印的原型,當我打電話的兩者之一的嫩枝模板:

form_rest(form) 
form_widget(form.subform.get('prototype')) 

的問題是如果集合至少包含一個元素,則Symfony僅打印原型

這是我不知道的錯誤還是我錯過了什麼?

任何想法將不勝感激! 謝謝!

回答

2

我已經更新的Symfony到它的最新的穩定和原型仍然舉止怪異:

  • 如果存在,它會使<div data-prototype="...."></div>
  • 否則會使原型純HTML(不是沒有項目爲DIV的屬性以上)

由於外的箱子沒有辦法可以解決,我被迫做IF - ELSE在我的JS。也就是說,JS首先檢查data-prototype元素,如果不存在則返回其他元素。

只要我有一些空閒時間,我會研究這個問題,如果它變成是不希望的(因爲我懷疑它是),將其報告爲一個bug ......

0

我不知道這是否是一個錯誤,但我認爲如果它不包含至少一個元素,那麼在打印表單時沒有意義。如果您正在創建集合,那麼您應該創建一個虛擬元素並將其添加到您的集合中。這不是自動完成的。

+0

如果我想從頭開始創建一個對象,我希望能夠使用jQuery創建所有字段。我可以將虛擬對象插入到集合中,但在我看來,這有點像快速的'n'髒播放...... – 2012-02-26 11:05:53

+1

然後可能在CollectionType.php第27行設置一個斷點並調試...我只是看看它,我不明白爲什麼一個元素是必要的。 – greg0ire 2012-02-26 11:14:14

+0

好吧,我似乎有點誤會。在這兩種情況下,原型都被渲染出來,我只是無法馬上發現,但這兩種原型在許多方面有所不同。我將繼續尋找一種方法來呈現單一的,更一致的原型,這將允許我使用單個JS代碼來添加新項目...... – 2012-02-26 16:30:04

0

如果表單數據是空的,你可以創建一個表單的副本並用一個虛擬對象填充它。使用這個克隆來生成原型。