簡體   English   中英

在Symfony2中使用嵌入式表單

[英]Using an embedded form in Symfony2

我在Symfony2中嵌入表單時遇到問題。 我在技術上可能做錯了一些,但也許我犯的錯誤是在db-setup的級別上,因此不必首先嵌入表單。 在介紹代碼之前,讓我們首先關注它。

我做了兩個實體:V和O。它們都代表位置,但是指的是不同類型的位置。 通過ref-id,它們各自引用實體地址。 多個V可以引用相同的地址,多個O可以引用相同的地址,甚至在同一地址上可以有一個V和一個O。 顯示V,O和地址有效(控制器和路由有效)。 創建或編輯地址也可以; 我已經創建了一個名為AddressType的表單類型,它也可以渲染並正常工作。

V和O也具有formTypes:VType和OType。 他們具有適當的Twig模板,路線,控制器動作等。

現在,我希望用戶能夠以表格形式輸入新的V,其中還有一些字段可用於輸入新的地址。 因此,我不希望用戶從某種列表中選擇一個已經存在的地址(但是我可以使用它),但是我希望他們能夠添加一個新地址。 如果該地址已經存在於數據庫表“ Addresses”中(很有可能),則Symfony2應該引用該現有地址,而不是再次創建該地址。

現在我的問題是,我沒有成功呈現嵌入在V或O表單中的Address表單(AddressType)。 基本上,我希望將AddressType表單呈現為V或O表單的一部分。 這可能嗎?

但是,很可能是我的數據庫設置不正確,我不應該將Address設置為單獨的實體(和db表),但是應該將其作為實體V和O的一部分。這也可以解決我猜是問題,但這是好的做法嗎?

非常感謝您的幫助。

我有類似的問題。 這是一種復雜的形式,可能不太容易做到。 最好的方法是制作一個自定義表單類型,甚至是一個原始表單(我更喜歡),並編寫控制器操作來直接使用Request類為您處理該表單。 然后,您可以使用ConstraintCollections驗證輸入,並直接使用類和Doctrine的EntityManager組成實體。

該鏈接可能會有用-或至少對我對非對象的驗證有所幫助: http : //www.ricardclau.com/2011/11/how-to-use-symfony2-validator-component-without-forms-實體和數據數組/

因此,基本上,您將必須在這里編寫代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM