PEP 8 гласит: «Сравнение с синглтонами, подобными None, всегда должно выполняться с помощью« есть »или« нет », а не операторов равенства». Вот довольно хорошее объяснение, почему:
http://jaredgrubb.blogspot.com/2009/04/python-is-none-vs-none.html
Я думаю, что аргумент removeDecorator
чувствителен к регистру. Т.е. это должно быть "Метка"
# обратите внимание на верхний регистр 'L'
.
Функция addElement возвращает ссылку на текущую форму, а не на последний добавленный элемент.
Вы можете попробовать следующее:
$form = new Zend_Form();
$form->addElement('submit', 'submit', array(
'ignore' => true,
'label' => 'Add new material'
));
$element = $form->getElement('submit');
$element->removeDecorator('label');
Чтобы преодолеть эту неприятность, я вручную определяю декораторы для своего элемента ...
$details->addElement('text', 'in_year', array(
'decorators'=>array(
'ViewHelper',
array('HtmlTag', array('tag' => 'span')),
)
));
Вы, конечно, можете определять свои собственные теги. В этом примере я инициализирую только декоратор ViewHelper. Если я хочу инициализировать декоратор "Label", я бы сделал:
$details->addElement('text', 'in_year', array(
'decorators'=>array(
'ViewHelper',
'Label',
array('HtmlTag', array('tag' => 'span')),
),
'attribs' => array('class' => 'required validate-digits')
));
Надеюсь, это имеет смысл ...: o)
У меня это сработало:
$this->addElements(array(
new Zend_Form_Element_Submit('submit', array(
'label' => 'Save'
))
));
$element = $this->getElement('submit');
$element->removeDecorator('DtDdWrapper');
Я сделал print_r ($ element);
, чтобы узнать, какие декораторы существуют для $ element
.