Bonjour à tous,
Je me permets de vous adresser ce courrier car je peine dans l'écriture d'une contrainte dans mon projet Symfony.
Dans le cadre de la création d'une billetterie en ligne, je dois créer une contrainte sur le mardi. Objectif : faire en sorte que l'on ne puisse pas réserver sur cette date là en ligne. J'ai déjà activé cette possibilité dans le datepicker en JS. Mais je souhaiterais également créer cette contrainte en PHP au cas où le JS n'est pas actif.
Dans mon entité visit, à l'attribut $visitDate, j'ai donné une valeur à ma contrainte : 2 pour mardi.
Dans ma classe NoReservationOnThisDay, j'ai créé un attribut $day et j'ai indiqué mon message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 * Assert\NoReservationOnThisDay(day="2") * */ private $visitDate;
Et dans le validator, j'ai écrit ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class NoReservationOnThisDay extends Constraint { public $day; public $message = "Il n\'est pas possible de réserver un billet en ligne pour des visites le mardi.";
C'est là que je peine. Car, en écrivant ceci, cela n'empêche pas les résa le mardi. Cela bloque tous les réservations le jour où $value = $day. Il y a une erreur dans mon if mais je ne vois pas du tout comment écrire cet algorithme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 class NoReservationOnThisDayValidator extends ConstraintValidator { /** * @param mixed $value * @param Constraint $constraint */ public function validate($value, Constraint $constraint) { $day = date('w'); $value = date('w'); if($day == $value && $day = $constraint->day) { $this->context->addViolation($constraint->message); } } }
Si vous avez une idée, je suis preneuse.
Merci d'avance,
Vanessa
Partager