0

我创建了一个元素提交:

   $this->addElement('submit', 'button', array(
        'ignore'   => true,
        'label'    => 'Update',
        'class' => 'btn blue',
    ));

现在尝试为这个元素装饰器设置:

    $submit = $this->getElement('submit');
    $submit->setDecorators(array(
        array('ViewHelper'),
        array('Description'),
        array('HtmlTag', array('tag' => 'div', 'class'=>'submit-group')),
    ));

我的代码有问题,因为我setDecorators在没有对象上调用成员函数时遇到致命错误?

4

1 回答 1

1

我认为你要么需要改变:

$submit = $this->getElement('submit');

$submit = $this->getElement('button');

或者

$this->addElement('submit', 'button', array(
    'ignore'   => true,
    'label'    => 'Update',
    'class' => 'btn blue',
));

$this->addElement('submit', 'submit', array(
    'ignore'   => true,
    'label'    => 'Update',
    'class' => 'btn blue',
));

看来 addElement 的第一个参数是element type,第二个参数是element id。不是反过来。

而且,getElement 需要接受element id它才能工作,而不是element type

请参阅此处了解更多信息: http://framework.zend.com/apidoc/1.10/_Form.html#Zend_Form:: addElement() http://framework.zend.com/apidoc/1.10/_Form.html#Zend_Form: :getElement()

于 2013-07-25T20:03:50.390 回答