1

在我的表单中,我想为选择元素设置选定的(默认)值。但是,使用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 文档的内容。我能找到的最好的是这个,但我不喜欢它——尤其是因为每次我尝试搜索时,它都会崩溃。

4

1 回答 1

3

你有没有尝试过:

$this->addElement($gender);

$this->setDefaults(array(
    'sltGender' => 0
));

另外,请查看http://framework.zend.com/issues/browse/ZF-12021

如您所见,上述问题与您描述的问题相似。Zend 似乎对创建对象和分配设置的顺序非常讲究。

恐怕你将不得不按照 Zend 想要你做的顺序做事(这似乎没有很好的文档记录,但只有通过反复试验才能发现),或者破解他们的库来让它做什么你想让它做。

于 2012-07-20T00:08:03.660 回答