1
J'ai une forme de zend avec un début et un endate.comment vérifier si la date de fin est après la date de début dans une forme de zend
$form = new Zend_Form();
$form->setName($this->formName)
->setMethod('post');
$feStartdate = new Zend_Form_Element_Text('startdate');
$feEnddate = new Zend_Form_Element_Text('enddate');
$form->addElement($feStartDate)
->addElement($feEndDate)
->addElement('submit', 'submit', array('label' => 'Save'));
Je suppose que je dois écrire un validateur personnalisé pour vérifier ceci. À quoi ressemblerait ce validateur personnalisé et comment puis-je l'appeler? Je suppose quelque chose comme
$feEnddate->addValidator('dateComesAfter', $feStartDate)
Je suppose que le validateur doit être attaché à la date de fin. Dans la fonction isValid ($ value) dans le validateur, la valeur $ est la valeur de enddate. Comment puis-je obtenir la valeur de startdate dans le validateur? – murze
Désolé pour le retard - n'a pas reçu l'email lorsque vous avez répondu. yes - vous pouvez l'ajouter à enddate, et dans la fonction isValid ($ value, $ context), vous voulez utiliser $ context ['field_name'] pour accéder au champ que vous voulez comparer. Pour résumer le validateur, vous devez définir le nom du champ à comparer dans le constructeur. Constructor serait: .. construire ($ fieldName, $ fieldTitle) .. et isValid (valeur $, le contexte $ = null) - vous avez: $ otherFieldValue = contexte $ [$ this-> _otherFieldName]; Évidemment, c'est un exemple rudimentaire, mais j'espère que cela illustre comment vous pouvez le faire. – delsurf