Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre habitué
    Vérification date d'entrée et date de sortie en Laravel
    Bonjour,

    J'ai 2 champs dans un formulaire, le premier champ est la date de début de révision et le second champ est la date de fin de révision. Je souhaiterai mieux gérer ces deux dates, par exemple j'aimerais éviter que l'utilisateur tape une date de fin de révision avant qui est antérieur à la date de début de révision avec un message d'erreur.



    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     public function rules()
        {
                return [
                    //
                    'date_revision_start' => 'after:2009-01-01|before:2023-01-01',
                    'date_revision_end' => 'after:2009-01-01|before:2023-01-01'
                 ];
        }



    Je ne sais pas si le début de ma condition est correcte?

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     if ($this->request->get('date_revision_start') < $this->request->get('date_revision_end')) 
        {
                   return redirect()->route('revisions.index')
                        ->with('error', 'The end date cannot be before the start date!');
        }


    Merci pour votre aide.

  2. #2
    Membre éprouvé
    bonjour,

    les dates étant liées il suffit de fixer alors la contrainte de validation sur l'une des dates. Par exemple la date fin ne doit pas être antérieure à la date début.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    'date_revision_start'   =>  'required|date',
    'date_revision_end'    =>  'required|date|after:date_revision_start'

    https://laravel.com/docs/5.8/validation#rule-after

    Côté contrôleur tu n'as pas besoin de comparer les 2 dates il te suffit juste d'afficher tous les messages d'erreurs dans la vue du formulaire.

    Le fait de fixer une date d’échéance en dure(2023) peut poser problème si cette dernière est dépassée. Tu peux soit récupérer cette date depuis un fichier(ou BD) soit la générer dynamiquement genre 2023 c'est dans 4 ans $limite =(new \DateTime("+4 years"))->format('Y-m-d'))

  3. #3
    Membre habitué
    Bonjour,

    Merci pour ton aide, mon problème est résolu.

###raw>template_hook.ano_emploi###