我正在尝试构建一个 html 表单(需要足够的标记,让 zend 使用装饰器生成它是不可行的),并且我$this->signupForm->getValue('fieldName')
在输入值元素中使用。
表单类正常创建元素并添加到表单中,当我显示此表单时,字段工作正常。
但是,使用 getValue 方法,我的表单字段值的一半是“0”。我进行了类型检查以确保它们不为空,但 getValue 实际上返回一个字符串“0”。
没有设置默认值。唯一似乎相关的是,所有默认值为“0”的字段都定义在扩展父类的子类中。但是,将字段移动到父类似乎没有影响(缓存清除等)。
这些让您了解表单类的结构:
class Form_Signup extends Base_Form_Signup {
public function __construct($options = null) {
parent::__construct($options);
$address = $this->createElement('checkbox', 'address');
$address->setLabel('Address')->setRequired(true);
// Add our elements
$this->addElement($address);
}
}
class Base_Form_Signup extends Zend_Form {
public function __construct($options = null) {
parent::__construct($options);
// fields defined here do not show 0
// Add our elements
$this->addElement( // adding our elements );
}
}