我创建了一个元素提交:
$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
会出现致命错误?
答案 0 :(得分:1)
我认为您需要改变:
$submit = $this->getElement('submit');
到
$submit = $this->getElement('button');
OR
$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()