utiliser les DisplayGroup
Bonjour à tous,
je voudrais mettre dans un fieldset trois éléments de mon formulaire. Mon formulaire est lui-même déjà dans un fieldset et il s'affiche de manière très simple: il s'agit d'une liste à puces, une puce pour chaque élément de mon formulaire.
Le code du fichier form_create.phtml est:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <form method="<?php echo $this->escape($this->element->getMethod()) ?>" id="myform">
<fieldset>
<legend>Créer un client</legend><ul>
<?php foreach($this->element as $element):?>
<li><?php echo $this->formLabel($element->getName(),$element->getLabel()) ?>
<?php echo $this->{$element->helper}(
$element->getName(),
$element->getValue(),
$element->getAttribs(),
(method_exists($element,'getMultiOptions')) ? $element->getMultiOptions() : ''
) ?></li>
<?php endforeach; ?></ul>
<p><input type="submit" id='submit' value="Envoyer" /></p>
</fieldset>
</form> |
et le code de la classe Application_Form_CreateDomain, extension de Zend_Form est :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| <?php
require_once 'Zend/Form.php';
require_once '/EText.php';
class Application_Form_CreateClient extends Zend_Form
{
public function add_els($type){
$els=array();
$els[] = new Model_Form_EText("Code_Client", 'Code client');
//société
$els_company=array();
$els_company[] = new Model_Form_EText("other",'Si autre');
$els_company[] = new Model_Form_EText("Siren",'Siren');
$els_company[] = new Model_Form_EText("trademark",'Marque');
$this->addDisplayGroup($els_company, 'Société');
$this->setDisplayGroupDecorators(array(
'FormElements',
'Fieldset'
));
}
$this->addElements ( $els );
$this->setDecorators( array( array('ViewScript', array('viewScript' => 'client/form_create.phtml'))));
}
} |
Et j'obtiens le message:
Warning: Exception caught by form: Method getLabel does not exist
Je n'ai pas le message d'erreur si je commente les lignes addDisplayGroup et setDisplayGroupDecorators, j'ai essayé de suivre le tutoriel http://framework.zend.com/manual/fr/...orm.forms.html pour comprendre mon erreur, mais sans succès.
Il y a quelque chose au niveau de la mise en place des display group qui m'échappe. :aie:
Si quelqu'un voulait bien m'indiquer la voie à suivre...
merci d'avance
schwarzy2