2009-07-28 4 views

Répondre

3

Je pense que l'argument à removeDecorator est sensible à la casse. C'est-à-dire, il devrait être "Label" # noter les majuscules 'L'.

+0

J'ai essayé que cela ne fasse aucune différence. J'ai trouvé cela dans une autre réponse, mais il ne semble pas correct de le faire de cette façon car ce n'est pas la manière dont la documentation décrit comment le faire. $ element-> removeDecorator ('DtDdWrapper') -> addDecorator ('HtmlTag', array ('tag' => 'dd')); Cependant, même en supprimant l'élément

du HTML, je n'ai pas résolu mon problème général de ne pas pouvoir positionner le bouton de soumission à gauche. –

+0

Donc, vous avez changé ceci: $ element-> removeDecorator ('label'); à ceci: $ element-> removeDecorator ('Label'); et ça ne fonctionnait toujours pas? Si c'est le cas, essayez peut-être var_dump (getDecorators()) et allons-y. – g33kz0r

11

La fonction addElement renvoie une référence au formulaire en cours et non au dernier élément ajouté.

Vous pouvez essayer ceci:

$form = new Zend_Form(); 
$form->addElement('submit', 'submit', array(
    'ignore' => true, 
    'label'  => 'Add new material' 
)); 

$element = $form->getElement('submit'); 
$element->removeDecorator('label'); 
+0

Aussi Zend_Db_Element n'a aucune fonction addElement Zend_Db_Form a – Erik

1

Pour remédier à cette nuisance je définir manuellement les décorateurs pour mon élément ...

$details->addElement('text', 'in_year', array(
    'decorators'=>array(
    'ViewHelper', 
    array('HtmlTag', array('tag' => 'span')), 
    ) 
)); 

Vous pouvez bien sûr définir vos propres balises. Dans cet exemple, je n'initialise que le décorateur "ViewHelper". Si je veux le décorateur initialiser "Label" Je ferais:

$details->addElement('text', 'in_year', array(
    'decorators'=>array(
    'ViewHelper', 
    'Label', 
    array('HtmlTag', array('tag' => 'span')), 
    ), 
    'attribs' => array('class' => 'required validate-digits') 
)); 

J'espère que cela a du sens ...: o)

18

Cela a fonctionné pour moi:

$this->addElements(array( 
    new Zend_Form_Element_Submit('submit', array( 
    'label' => 'Save' 
)) 
)); 
$element = $this->getElement('submit'); 
$element->removeDecorator('DtDdWrapper'); 

Je l'ai print_r($element); pour savoir ce que les décorateurs existent pour $element.

Questions connexes