Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework Zend框架:扩展Zend_表单以添加默认表单元素?_Zend Framework - Fatal编程技术网

Zend framework Zend框架:扩展Zend_表单以添加默认表单元素?

Zend framework Zend框架:扩展Zend_表单以添加默认表单元素?,zend-framework,Zend Framework,目前,我创建了自己的Zend_表单类,只是为了添加一些帮助函数和setdefault装饰器 现在我想做的是添加一些默认值(setMethod('post')),并添加一些元素(如果你知道防止垃圾邮件机器人的蜜罐方法的话)。我该怎么做?在\uuu构造()?中,如果您阅读Zend\u表单的\uu构造,您将看到它正在调用空方法init() 所以你有两个选择: 创建自己的构造,不要忘记调用父构造 (推荐)在init()方法中放入所需内容。这样,您将确保所有内容都已正确实例化 init()与整个框架(您想

目前,我创建了自己的Zend_表单类,只是为了添加一些帮助函数和setdefault装饰器


现在我想做的是添加一些默认值(
setMethod('post')
),并添加一些元素(如果你知道防止垃圾邮件机器人的蜜罐方法的话)。我该怎么做?在
\uuu构造()

中,如果您阅读
Zend\u表单的
\uu构造
,您将看到它正在调用空方法
init()

所以你有两个选择:

  • 创建自己的构造,不要忘记调用父构造
  • (推荐)在
    init()
    方法中放入所需内容。这样,您将确保所有内容都已正确实例化
  • init()
    与整个框架(您想要扩展哪个类)是一致的


    如果您阅读
    Zend\u表单的
    \u构造
    ,您将看到它正在调用空方法
    init()

    所以你有两个选择:

  • 创建自己的构造,不要忘记调用父构造
  • (推荐)在
    init()
    方法中放入所需内容。这样,您将确保所有内容都已正确实例化
  • init()
    与整个框架(您想要扩展哪个类)是一致的


    覆盖构造函数应该可以

    class Your_Form extends Zend_Form
    {
        public function __construct($options = null)
        {
            $this->setMethod('POST');
            $this->addElement('hidden', 'hash', array('ignore' => true));
            parent::__construct($options);
        }
    
    因此,其他表单可以扩展
    表单
    并调用
    init()
    ,从而保持一致

    class Model_Form_Login extends Your_Form
    {
        public function init()
        {
             $this->addElement('input', 'username');
             ...
    
    如果覆盖init()-方法,则不必调用父对象::\uu construct()

    。。。但是所有扩展表单都必须像这样调用parent::init()


    覆盖构造函数应该可以

    class Your_Form extends Zend_Form
    {
        public function __construct($options = null)
        {
            $this->setMethod('POST');
            $this->addElement('hidden', 'hash', array('ignore' => true));
            parent::__construct($options);
        }
    
    因此,其他表单可以扩展
    表单
    并调用
    init()
    ,从而保持一致

    class Model_Form_Login extends Your_Form
    {
        public function init()
        {
             $this->addElement('input', 'username');
             ...
    
    如果覆盖init()-方法,则不必调用父对象::\uu construct()

    。。。但是所有扩展表单都必须像这样调用parent::init()


    我之所以考虑使用该构造,是因为我想创建一个“抽象”zend form类(可重用性),所有其他表单都将在其中扩展。我想让它与
    \uu construct()
    一起工作,我在开始时调用了
    parent::construct()
    来创建抽象,它将继承Zend\u表单,而您将继承抽象。唯一的原因是,每次升级系统时,如果您这样做,您都必须接触库。(或者我不明白你做了什么)。我之所以想到使用这个构造,是因为我想创建一个“抽象”zend form类(可重用性),我的所有其他表单都将在其中扩展。我想让它与
    \uu construct()
    一起工作,我在开始时调用了
    parent::construct()
    来创建抽象,它将继承Zend\u表单,而您将继承抽象。唯一的原因是,每次升级系统时,如果您这样做,您都必须接触库。(或者我不明白你做了什么)。
    class Model_Form_Login extends Your_Form
    {
        public function init()
        {
             $this->addElement('input', 'username');
             ...
             parent::init();