我想使用視圖腳本來渲染我的zend窗體,因爲它似乎是 控制窗體佈局/設計的最佳方式,同時仍然使用Zend_Elements類。在嵌套子窗體上使用ViewScript裝飾器(Zend窗體)
從視圖腳本中,我使用$this->element->getElement('elementName')
呈現元素。
我遇到了元素名稱的問題。這實際上是表單內子表單內的子表單。
當我使用FormElements裝飾器時,元素的完全限定名稱是form [subForm] [subForm] [element],這很好。 我移動到viewScript裝飾器,它改變爲subForm [subForm] [element]。
我知道我需要使用PrepareElements裝飾器來解決這個問題,但是這導致了名稱改變了form [subForm] [form] [subForm] [subForm] [elements](它將前兩個名字加倍開始)。
任何想法我應該如何處理?
謝謝。
更新:我試圖調試PrepareElements,我真的不明白在做什麼。 看起來它在第一次迭代中工作正常,但是當它在中間子窗體中的一個上運行時,它再次添加形式[子形式]前綴。當我不使用PrepareElements裝飾器時,我只是在名稱(即,而不是form [subForm] [element],我只得到subForm [element])中缺少了「表單」前綴)。
可能是我可以修正這個莫名其妙?
我試圖改變belongsTo但只替換了「subForm」前綴。
它實際上好像缺少的是subForm上的belongsTo方法。
再一次,這都是因爲ViewScript裝飾器。它適用於FormElements裝飾器。
更新2:只是爲了澄清,我不介意這個名稱的變化,但它會導致我的字段不填充時,我調用form->填充。
編輯:我認爲我已經收窄的問題:當我得到我的價值觀回來setDefaults,他們被下令這樣的:
array(
\"formElements1-name\" => value1... \"subFormName\" => array(
\"parentFormName\" => array(
\"subFormName\" => subForm-values-array
)
)
... 這裏的主要問題是"parentFormName" => "subFormNAme"..
它重複了什麼?我已經在主要形式。我猜這是因爲我設置了setElementsBelongTo(formName[subFormName])
,但如果我不這樣做,那麼我會得到我的子表單值完全獨立於表格,即
即 值數組=陣列( \ 「表格名稱\」=>數組( formValues ),\ 「subFormNAme \」=>數組( subFormValues )
,雖然我怎樣exepct它是
array(
formName => array(
subFormNAme => values-array
)
)...
它甚至有可能使這項工作?
[Zend:ViewScript裝飾器和數組表示法]的完全重複(http://stackoverflow.com/questions/7155047/zend-viewscript-decorator-and-array-notation) – Phil
這不是重複的,因爲我已經使用建議的解決方案,但效果不佳。 – Ran
Zend表格必須是我所遭受的不幸中最糟糕,最可笑,最瘋狂的一段垃圾。我完全感覺到你的痛苦,如果你知道有什麼問題,那麼請儘量讓我知道! – GordonM