我有一個zend表單,我需要每個元素被顯示組包裝。然後我需要將一組元素包裝在另一個顯示組中。由於zend表單不支持嵌套顯示組,我改用子表單。Zend SubForm:如何禁用子窗體內部元素名稱的更改?
所以,我現在的結構是:
Form
--- SubForm (1)
--- --- DisplayGroup (1-1)
--- --- --- Element (1)
--- --- DisplayGroup (1-2)
--- --- --- Element (2)
--- SubForm (2)
--- --- DisplayGroup (2-1)
--- --- --- Element (3)
--- --- DisplayGroup (2-2)
--- --- --- Element (4)
等
由此看來,然而,來自每個子窗體被設置爲父母到屬於它的每個元素的問題。這改變了元素的名稱f.e. name="username"
變成name="subformname[username]"
。
由於我使用的子表單作爲顯示組的替代品,我不需要它的額外功能。
如何禁用此名稱更改?我正在使用自定義函數來「批量處理」每個元素(平凡的東西 - 刪除裝飾器,設置標籤等),所以我能夠強制setAttrib('name', $element -> getName())
,但事實證明,這隻適用於常規表單元素。它不適用於像datepickers,colorpickers等ZendX表單元素。
爲什麼你需要用顯示組來包裝每個元素? – 2012-08-14 14:19:36
每個元素都應該從twitter引導CSS框架繼承span4或span6,以便出現在列中。更進一步,它應該在Zend_Form中,而不是在視圖 - 客戶端的要求。 – user1388771 2012-08-14 14:33:30