Besoin d'aide ?

Problème de validation sur un update

Avatar de Robthan
Robthan

Bonjour, Je rencontre un petit souci au niveau des validations sur Laravel et j'avoue que je m'emmèle un peu les pinceaux... J'ai en effet un formulaire d'édition d'événement qui présente ces champs :

• L'événement a t'il une date spécifique (has_date) ? avec comme choix "Oui" "Non" ou "Période" • Un champ "début de l'événement" où l'on entre une date (start_date) • Un champ "fin de l'événement" où l'on entre une date (end_date).

Niveau JS, le champ "début de l'événement" s'affiche si la radio "Oui" ou "Période" est sélectionnée. Le champ "fin de l'événement apparait si la radio "Période" est sélectionnée. Du coup, au niveau de la Request de validation j'ai indiqué ceci :

    'start_date' => 'required_if:has_date,==,oui|nullable|required_if:has_date,==,periode|date_format:"d/m/Y H:i"',
    'end_date' => 'required_if:has_date,==,periode|nullable|after:start_date|date_format:"d/m/Y H:i"',

J'aimerais donc que le champ "start_date" soit nullable, vérifier et valider sa présence uniquement si le champ "has_date" est sur "oui" ou "période" et si c'est le cas, de vérifier que la date est valide. Même chose pour le champ "end_date" où j'aimerais qu'il soit nullable. Puis vérifier, valider sa présence si le champ "has_date" est sur "période" et que la date de fin soit bien après la date de début. Lors de la soumission, j'ai une redirection 302 sur le formulaire, sans aucune erreur et je ne parviens pas à identifier pourquoi...

J'ai rempli le champ "has_date" sur "oui" ; J'ai indiqué une date valide dans le champ "start_date" ; Le champ "end_date" est vide.

Si j'enlève la règle 'end_date' de la validation, le formulaire est bien sauvegardé. Est-ce que quelqu'un a une idée de la bonne règle de validation que je dois indiquer ? Merci d'avance et j'espère avoir été assez clair :)

Avatar de Robthan
Robthan

Hello, je me permet de remonter un peu le problème... Je ne sais pas si ce dernier est clair ou même si ce que je demande est possible. Merci d'avance

Vous ne pouvez pas répondre à ce sujet.