Lerm-IT

Blog traitant de technologies informatiques. Logiciel libre, AdminSys, DevOps et GNU/Linux !

11 Oct 2011

Travailler sur les validateurs start_date end_date symfony

Bonjour,

Voilà j'écris cet article pour partager une solution sur un formulaire symfony qui contient un widget start_date et end_date utilisant sfWidgetFormI18nDate.

Le problème était de pouvoir, en fonction de la start_date, définir une end_date minimale dans un validateur.

La solution était pour ce formulaire de surcharger la méthode doBind pour récupérer les valeurs du start_date et définir le minimum pour le end_date.

Voici le code pour la solution :

// on récupère d'abord la valeur de la start date dans une variable $date
$date = strtotime($values['start_date']['day']."/".$values['start_date']['month']."/".$values['start_date']['year']);
// Ensuite on ajoute la valeur minimale que l'on veut pour le end date
$date = strtotime("+ 5 month", $date);

// Enfin on met en place le validateur pour cette end date
$this->validatorSchema['end_date'] = new sfValidatorDate(array("min" => $date), array("min" => "La date doit être supérieure à %min%"));

Voilà j’espère que cette solution pourra aider du monde 🙂

Merci à Lermit et Yochima pour leur aide.