我創建了一個隱藏的元素這樣,當隱藏的元素沒有價值,甚至這個:Zend框架指定它
$this->addElement('hidden', 'id', array(
'value' => 1
));
但它沒有更好的工作。
怎麼了?
我創建了一個隱藏的元素這樣,當隱藏的元素沒有價值,甚至這個:Zend框架指定它
$this->addElement('hidden', 'id', array(
'value' => 1
));
但它沒有更好的工作。
怎麼了?
你可能在使用
$form->populate($someData);
或
$form->isValid($someData);
某處在您的代碼;)
謝謝。我開始環顧其他方法,確實存在這樣的問題。 – 2011-04-19 06:32:53
是的。 isValid傾向於清除表單,並且自定義填充方法可以將默認設置相當不錯。 – axiom82 2014-02-07 01:38:24
也許在呈現之前,你做$form->setValue()
和參數ID爲空。
我沒有$ form-> setValue()。 我檢查過,該方法甚至不存在。 – 2011-04-18 11:13:16
@ndefontenay那麼你的第二個例子是正確的。沒有代碼很難說什麼。 – Iscander 2011-04-18 11:31:10
它有一個int或字符串對我的作品(ZF 1.1),但你試圖傳遞值作爲字符串?:
$this->addElement('hidden', 'id', array('value'=>'1'))
您可以使用Zend_Form的setValue方法。
試試這樣說:
$this->getElement('your-name')->setValue(1);
@softwareplay setVlue()會退出,請參閱文檔:http://framework.zend.com/manual/1.12/en /zend.form.forms.html – 2014-01-18 21:32:42
你試過setDefault?
$this->addElement('hidden', 'id', array(
'default' => 1
));
我認爲你必須把你的窗體類:
public function populate(array $values) {
parent::populate($values);
$this->addElement('hidden', 'hidden');
$el = $this->getElement('hidden');
$el->setValue(1);
}
答案很簡單:
//$form <- is your zend form element;
$form->get('element_name')->setValue(1);
爲我工作! :)
正如之前說的那樣:確保你的方式沒有表單元素設置器(填充,setValues等)。 :)
這個我曾經(在窗體類)問題
$form->hiddenElement->getAttrib('xxx');
$hidden = $this->createElement('hidden','hiddenElement');
$hidden->setAttrib('xxx','my value');
$this->addElement($hidden);
提取值後migth不是一個最佳的解決方案,但它workked我。
你的第二個例子應該工作,因爲我沒有看到任何問題。 – Marcin 2011-04-18 10:57:40
但是。沒有成功。 – 2011-04-18 11:22:53
所以原因不是這個代碼。您必須在代碼中的某處導致問題。沒有更多的信息,很難說出了什麼問題。 – Marcin 2011-04-18 11:51:25