我有一些嵌套formTypes這樣的:自定義嵌套形式從母體中的Symfony 2
Form1
包括Form2
包括Form3
根據一些信息(例如,如果當前用戶是管理員),我想要改變Form3
上某些字段的類型。
問題是我不知道該怎麼做,因爲沒有setOption
方法在$builder
對象,我可以從Form1
打電話。
此外,我不知道我應該如何組織我的表格,實際上Form3
也包含在其他一些形式中,而且每個字段幾乎都是相同的,只有少數人需要更改,這就是爲什麼我製作一個Form3
表格以避免冗餘。
一種解決方法是在你的Form3注入的背景下,並使用被授予調整建設者(添加字段或刪除,如果他的管理員或沒有例如) – Snroki
那是在那種情況下工作,但是當我必須根據其他條件自定義窗體,如控制器中所做的一些選擇,我將不得不尋找另一種解決方案。我正在開發一個大型應用程序,所以我想要最好的開始,以避免以後的很多變化。 – Leto
因此,不用直接使用上下文,你可以定義一個服務,讓你完成所有的測試並將其注入到你的表單中,這樣,如果你修改了「權限」 「它可以重複使用 – Snroki