Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour, je suis en train de créer un formulaire et dans celui-ci, j'ai 2 champs date où le deuxième doit être supérieur au premier.
J'ai regardé le validateur GretaherThan mais il ne fonctionne pas avec les dates.
Voici mon code actuel :
// date de debut du concours $daeDebut = new Zend_Form_Element_Text('dateDebut'); $daeDebut->setRequired(true) ->addFilter('StripTags') ->addFilter('StringTrim') ->addValidator('NotEmpty') ->addValidator(new Zend_Validate_Date(array( 'format' => 'dd-MM-yyyy', ))) ->setDecorators(array('ViewHelper')); // date de fin du concours $dateFin = new Zend_Form_Element_Text('dateFin'); $dateFin->setRequired(true) ->addFilter('StripTags') ->addFilter('StringTrim') ->addValidator('NotEmpty') ->addValidator(new Zend_Validate_Date(array( 'format' => 'dd-MM-yyyy', ))) ->setDecorators(array('ViewHelper'));
Vers quoi puis-je me tourner svp?
Hors ligne
Salut,
Pour moi, il faut que tu passes par Zend_Validator_Callback ou la redéfinition de ton validator.
++
Hors ligne
Tu peux aussi surcharger la méthode isValid de ton form
[lang=php] public function isValid($dataSource) { $valid = parent::isValid($dataSource); // if date1 > date2 $valid = false; return $valid; }
Dernière modification par tomtom (08-02-2012 17:31:49)
Hors ligne
C'est nettement plus propre comme ça ^^
N'oublie pas d'appeler le addError si ton test n'est pas validé.
D'ailleurs, pourquoi n'existe t-il pas une méthode addValidator pour ajouter directement des validators à un formulaire ?
Hors ligne
Pourquoi ne pas créer ton propre validateur ? C'est ce que je fais pour des champs liés. J'attache le validateur au deuxième champ, je récupère la valeur du 1er et je vérifie la validité.
Hors ligne
Pareil, la logique voudrait que l'on crée un validateur.
EDIT : google est ton ami --> http://stackoverflow.com/questions/2232 … today-with
Dernière modification par shadypierre (09-02-2012 00:16:16)
Hors ligne
Tu as regardé le lien? Car tu as déja une base solide pour faire ton propre validateur, 2 lignes à modifier et c'est fini
Hors ligne
Inspire toi du code du validateur Zend 'GreaterThan', tu as juste à rajouter une comparaison sur les date au lieu de sur deux entiers. Zend_Date a une fonction de comparaison
Hors ligne
Pages: 1