我見過的其他線程和bug報告做,直接關係到什麼,我經歷Zend_Element但沒有任何的屬於關聯屬性..與Zend_Element「屬於關聯」屬性奇怪的行爲
這裏是我的(簡化)Zend_Form的:
$form = new Zend_Form();
$form->addElement('text', 'fname', array('belongsTo' => 'user'));
$form->addElement('text', 'sname', array('belongsTo' => 'user'));
哪些是好的,呈現的元素,像這樣:
<input type="text" name="user[fname]" />
<input type="text" name="user[sname]" />
...這正是我想要的。
然而,當提交表單時,元素值僅如果調用
$form->getValue('fname') or $form->getValue('sname')
NOT,如果調用訪問...
$form->getValue('user');
什麼,我期待看到當你調用$ form-> getValues('user')是一個數組的值。 如果調用
$form->getValues();
如果這是預期的行爲,然後把它們放入數組的什麼點的值的數組是清晰可見?因爲「user [fname]」和「client [fname]」之間沒有區別 - 實際上添加名爲「fname」的另一個元素即使屬於另一個項目也會覆蓋前一個元素。
我已經嘗試添加一個子窗體,它確實導致我想要的,但是這樣所有的子窗體元素都會被渲染到一起,我真正想要的是將數組元素放置在隨機的地方,就像這...
<input type="text" name="user[fname]" />
<input type="text" name="some-other-field" />
<input type="text" name="some-other-field2" />
<input type="text" name="user[sname]" />
<input type="text" name="another-field-too" />
嗨RockyFord - 感謝您的建議,但它仍然沒有任何意義 - 設置belongsTo應該將該元素設置爲您指定的屬於它的子元素(或子表單)。否則,如果它只是將它創建爲一個單獨的元素,那麼設置belongsTo沒有意義。 – pavsid
取決於你的觀點。 getValue($ key)旨在返回單個元素的值,而不管其他設置如何。 getValues()提供了將數據集的所有值作爲數組返回的方法。但ZF很酷的部分是,如果你不同意他們的選擇,改變它們。用你自己的函數擴展Zend/Form並覆蓋getValue()。 – RockyFord