Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
j'ai besoin d'écrire un validateur de formulaire qui s'assure qu'au moins un des deux champs du formulaire contiennent une valeur.
Comment puis je faire avec la structure de base ?
Hors ligne
Pour faire ceci, la seule solution que je connaisse et que j'utilise souvent c'est de redéfinir la méthode isValid de Zend_Form.
/** * Méthode permettant de valider le formulaire * * @param array $data * @return bool */ public function isValid($data) { parent::isValid($data); $value1 = $this->getElement('champ1')->getValue(); $value2 = $this->getElement('champ2')->getValue(); if ( empty($value1) && empty($value2) ) { $this->addError("Message d'erreur"); } return !$this->isErrors(); }
Dernière modification par Roromix (08-01-2013 19:45:01)
Hors ligne
Merci !
Tu penses qu'il n'y a aucune autre solution ?
Sinon celle-ci me convient très bien.
Hors ligne
On ne peux pas faire autrement.
Hors ligne
Bien sûr que si, on peut faire autrement.
Tu crées un valideur personnalisé, tu l'attaches à l'un des champs (peu importe), tu lui passes l'objet form en paramètre, grâce à lui tu récupères les valeurs des deux champs, et tu valides les données.
Cela me parait plus propre que de modifier isValid().
Hors ligne