目前我在扩展Zend_Form方面遇到了很大困难。
我有一个名为 Forms_LpaManageEmailForm 的基本类。
它是单独使用,工作正常。
接下来我创建了一个新的类表单
名为 Default_Form_CartReport 的女巫扩展 Forms_LpaManageEmailForm 。
所以任务是渲染 Default_Form_CartReport 并轻轻地修改它。
换句话说,我需要所有的功能
Forms_LpaManageEmailForm 类但具有覆盖_addMultiOptionsForMultiSelect()
功能
(做了什么)并更改了按钮标签(未解决)。
在基础课程中,我有一个名为 id 的隐藏元素,其中填充了值
$this->_entry_id['entry_id'].
当我单独使用基本表格时 - 它的问题很好。但
当我运行扩展表单(Forms_LpaManageEmailForm)时,我看到隐藏的id元素的值为空。在构造部分的基础类中,我运行
Zend调试器(用这行Zend_Debug::dump($this->_entry_id['entry_id'])
)来查看是否
价值通过。并且它已通过:)当我在init()部分重复此操作时,它显示为NULL ...
我几乎不了解 - 问题出在init()函数中,就像调用它一样。 我认为Default_Form_CartReport类骨架有问题。
我已将代码上传到:PASTEBIN 在这个问题上真的需要帮助。
谢谢!
答案 0 :(得分:1)
我相信您的问题导致Forms_LpaManageEmailForm:: __construct
直接调用$this->init()
这一事实。如果您打开Zend_Form
,您会注意到__construct
也在调用$this->init()
功能。这会导致您的init()
函数执行两次。
尝试加载所有逻辑和放大器元素仅在__construct
函数中,不使用init()
函数。此外,每个表单类中的__construct
函数应始终在任何其他逻辑之前调用parent::__construct
。