Bonjour,

Malgré mes nombreuses recherches, je n'ai pas trouvé de réponse à un problème que je pensais pourtant simple.

Après la soumission d'un formulaire d'encodage, je dois encore faire certaines vérifications au niveau de mon controller (vérifier que différentes périodes qui y sont encodées ne se chevauchent pas). Si certaines se chevauchent, je voudrais ré-afficher le formulaire avec ses données et avec un message d'erreur indiquant à l'utilisateur que des périodes se chevauchent et qu'il faut donc en modifier certaines dates. C'est là que je ne trouve pas comment ré-appeler le formulaire en lui passant en paramètre le message d'erreur.

Pour plus de clarté, voici le code utile dans mon controller :

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
19
20
21
22
23
24
25
26
27
...
        if ($form->isSubmitted() && $form->isValid()) 
        {
...
            $periods = $advert->getPeriods();
            $overlap = false;

            foreach ($periods as $key => $value) {
                if ($key > 0) { 

                    for ($j = 0; $j <= $periods->count() - 1; $j++) { 

                        if (! ($periods[$key]->getStart() > $periods[$j]->getEnd() && $periods[$key]->getEnd() > $periods[$j]->getEnd()) || 
                              ($periods[$key]->getStart() < $periods[$j]->getStart() && $periods[$key]->getEnd() < $periods[$j]->getStart()) )
                        {
                                $overlap = true;
                        }

                    }

                }
            }

            if ($overlap) {
               //C'est ici que je voudrais ré-appeler mon formulaire avec, en paramètre, le message ""Des périodes se chevauchent. Veuillez vérifier les dates de début et de fin."
            }
Quelqu'un aurait une idée sur la procédure à suivre?

Merci d'avance pour votre aide.