在我的表单中,我想为select元素设置所选(默认)值。但是,使用setDefaults
对我不起作用。
这是我的代码:
$gender = new Zend_Form_Element_Select('sltGender');
$gender->setMultiOptions(array(
-1 => 'Gender',
0 => 'Female',
1 => 'Male'
))
->addValidator(new Zend_Validate_Int(), false)
->addValidator(new Zend_Validate_GreaterThan(-1), false);
$this->setDefaults(array(
'sltGender' => 0
));
$this->addElement($gender);
我的控制器只是将表单分配给只显示表单的视图变量。
它使用$gender->setValue(0)
工作,但使用默认值数组一次设置它们会更容易。我在这里误解了什么吗?
此外,类和方法的Zend Framework文档在哪里?我正在寻找类似于Java documentation的东西。我能找到的最好的是this one,但我不喜欢它 - 特别是因为每次我尝试搜索时都会崩溃。
答案 0 :(得分:3)
你试过了吗?
$this->addElement($gender);
$this->setDefaults(array(
'sltGender' => 0
));
另外,请查看http://framework.zend.com/issues/browse/ZF-12021。
如您所见,上述问题与您所描述的问题类似。 Zend似乎非常特别关于您创建对象和分配设置的顺序。
我担心你将不得不按照Zend要求你做的那样做(事情似乎没有很好的记录,但只是通过试验和错误发现),或者破解他们的图书馆制作它做你想做的事。