Zend framework 扩展Zend_形式有困难

Zend framework 扩展Zend_形式有困难,zend-framework,inheritance,zend-form,subclass,Zend Framework,Inheritance,Zend Form,Subclass,目前我很难扩展Zend_表单 我有一个名为表单的基本类。 它单独使用,效果很好。 接下来,我创建了一个新的类表单 调用了Default\u Form\u CartReport,它扩展了Forms\u manageEmailForm。 因此,任务是呈现默认表单\u CartReport并对其进行适当修改。 换句话说,我需要的所有功能 表单\u lpamageEmailForm类,但具有重写的\u addMultiOptionsForMultiSelect()函数 (完成的操作)和更改的按钮标签(未

目前我很难扩展Zend_表单

我有一个名为表单的基本类。 它单独使用,效果很好。 接下来,我创建了一个新的类表单 调用了Default\u Form\u CartReport,它扩展了Forms\u manageEmailForm。 因此,任务是呈现默认表单\u CartReport并对其进行适当修改。 换句话说,我需要的所有功能 表单\u lpamageEmailForm类,但具有重写的
\u addMultiOptionsForMultiSelect()
函数 (完成的操作)和更改的按钮标签(未解决)

在基本类中,我有一个名为id的隐藏元素,该元素的值用
$this->\u entry\u id['entry\u id']。
当我单独使用基本表单时,它就可以了。但是 当我运行扩展表单(Forms_ManageMailForm)时,我看到隐藏id元素的值为空。在构造部分的基本类中,我运行 Zend debugger(使用此行
Zend_Debug::dump($this->_entry_id['entry_id'])
)查看 值被传递。它被传递:)当我在init()部分重复这个时,它显示为NULL

正如我所知,问题在于init()函数的调用方式。 我认为默认的表单报告类框架有问题

我已将代码上载到: 在这个问题上我真的需要帮助


谢谢大家!

我相信是您的问题导致了我的问题,
Forms\u lpamageEmailForm::\u construct
直接调用
$this->init()
。如果打开
Zend\u表单
,您会注意到
\u构造
也在调用
$this->init()
函数。这会导致
init()
函数执行两次


尝试在
\u构造
函数中单独加载所有逻辑和元素,不要使用
init()
函数。此外,每个表单类中的
\uu构造
函数应始终在任何附加逻辑之前调用
父::\uu构造

aporat,非常感谢您的回答!我已经更新了我的代码,现在它在这里:。现在,当我运行
Zend\u Debug::dump($this->getElements())
时,它写入id元素具有
[“\u value”:protected]=>int(51)
值。但它仍然不能以HTML格式输出。。。现在我可以更改标签了:)我认为我们找到了最终解决方案的正确方法。另外,我添加了
Zend\u Debug::dump($this->getElements())
中的数据,方法是:如果我从父类中删除id元素,子窗体将不会被呈现。但是我可以看到表单转储。。。很奇怪,我终于明白了。最后一个问题是控制器是否有效的方法。。。目前正在修复:)没有问题:-)。顺便说一句,addElement()函数返回元素本身,因此您可以这样写:$submit=new Zend_Form_element_submit('submit')$提交->设置标签(“提交”)$此->添加元素($submit);