我需要寫一個表單來創建一個新的實體,並且最多有3個關係(它們是新的實體)。我應該如何將一組新實體嵌入到Symfony2表單中?
我可以讓它動態地動態地附加/刪除它們(這可能很有用),或者讓所有3個都始終與實體相關,並且讓它們對它們有一個「活動」布爾值,這就像適當。
我應該在什麼時候這樣做?我需要將它們呈現爲表單上的複選框。
到目前爲止,我已經試過之前將它傳遞給他們的形式連接到實體,而是選擇字段無法通過映射的實體,所以這是沒有好。
我也爲這個做了一個DataTransformer的修飾,儘管如此,就我所見,我將不得不在DataTransformer中創建新的實體,這似乎是錯誤的,而且我仍然無法繼續工作 - 我無法訪問其中的實體,甚至對此進行黑客攻擊,但這種關係無法正確地綁定(學說試圖首先保存關係)。
在Symfony1方面,我可以嵌入一對夫婦的形式,每增加關係,我需要使用新的對象,而且它剛剛工作,所以肯定還是有解決這個相對簡單的方法?
一位朋友也建議尋找到ResizeFormEventListener,但是這一點,因爲據我瞭解,是「調整大小」根據返回的數據形式,而我再也不想形式發生變化,我想3複選框始終。
解決此問題的最佳方法是什麼?
您使用的是2.0還是2.1? (兩者之間的表單系統發生了很多變化)你在創建什麼類型的實體?關係是什麼?目前還不清楚複選框在哪裏進入。但我猜測你只想使用常規選擇元素,然後在表單驗證完成後添加相關對象。澄清用例可能會使事情更清楚。 – Cerad 2012-07-26 12:19:13
我正在使用2.1。對不起,我今天早上寫了這個,我的意思是要表達我還需要3個複選框,不管對象是否存在(我不太在乎),勾選這些框需要設置一些或全部這些對象是「活動」的,或者如果它們不存在就創建它們。 – Steve 2012-07-26 12:24:32
好的。我沒有太多關於2.1的經驗,但你會想要添加三個關係,使用「集合」字段組,併爲呈現複選框的關係創建表單類型。然後,您需要通過使用級聯或在沖洗之前單獨保持關係來確保該教條很高興。 – Cerad 2012-07-26 12:33:10