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