IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

ORM PHP Discussion :

Date non valide [4.x]


Sujet :

ORM PHP

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut Date non valide
    Bonjour,

    Dans un formulaire, j'utilise un champ de type DateType auquel j'ai lié un widget datePicker. Lorsque je soumet le formulaire j'ai l'erreur
    This value is not valid.
    au niveau du champ date.

    Voici le champ dans mon formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $builder
                ->add('manufactureDate', DateType::class, array('widget' => 'single_text', 'html5' => false, 'attr' => ['class' => 'js-datepicker'],));
    Le code js du widget :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $(document).ready(function() {
        $(".js-datepicker").datepicker({
                    viewMode: "years",
                    weekStart: 1,
                    daysOfWeekHighlighted: "6,0",
                    autoclose: true,
                    todayHighlight: true,
                    startDate: '-30y',
                    endDate:'+0d'
                });
     
        $('.js-datepicker').datepicker("setDate", new Date());
    });
    Et le code dans mon entité :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        /**
         * @ORM\Column(type="datetime")
         */
        private $manufactureDate;
    Quelqu'un aurait une idée?

    Merci d'avance pour votre aide.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Question bête : quel est le format attendu par le serveur et quel est le format envoyé par le datepicker ?

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Merci pour ton intervention. Apparemment, d'après ce que je peux lire (mais sans certitude), le format attendu par le serveur serait "Y-m-d h:i:s". Mais, même lorsque j'applique ce format au widget, ça ne change rien.

    J'ai, pour essai, supprimé le widget et fais un var_dump() de ce qui est envoyé par le formulaire dans lequel j'avais encodé manuellement "01/01/2019" : j'ai obtenu ceci :

    private 'vehicle' =>
    object(App\Entity\Vehicle)[95]
    private 'id' => null
    Je dois avouer que ce problème me prends la tête depuis de longues heures

  4. #4
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Salut,

    le format par défaut pour un DateType dans ce cas est yyyy-MM-dd, donc si le datepicker envoie un format autre que ça il faudrait le préciser dans l'option "format" http://userguide.icu-project.org/for...-Format-Syntax

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Merci beaucoup pour ton intérêt. J'avoue que ça me casse sévèrement la tête :-)

    J'ai modifié le format de sortie du datepicker comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $(document).ready(function() {
        $(".js-datepicker").datepicker({
                    viewMode: "years",
                    weekStart: 1,
                    daysOfWeekHighlighted: "6,0",
                    autoclose: true,
                    todayHighlight: true,
                    startDate: '-30y',
                    endDate:'+0d',
                    format:  'yyyy-MM-dd'
                });
     
        $('.js-datepicker').datepicker("setDate", new Date());
    });
    J'ai ensuite refais un var_dump() des données envoyées par le formulaire, et ça ne change malheureusement rien : "manufactureDate" du sous-formulaire est toujours à null :

    private 'vehicle' =>
    object(App\Entity\Vehicle)[95]
    private 'id' => null
    private 'manufactureDate' => null

  6. #6
    Membre éprouvé Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 540
    Points : 1 067
    Points
    1 067
    Par défaut
    Il faudrait regarder la documentation du "datepicker", il se peut qu'il ne supporte pas par exemple MM ou le MM ne signifie pas la même chose avec celui de Symfony.
    Il s'agit de faire une correspondance entre le format du "datepicker" et celui de symfony ou l'inverse. Donc le "datepicker" peut avoir le format le format français, Symfony aussi

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Effectivement, merci. J'ai supprimé le formatage que j'avais ajouté dans le builder de mon formulaire et modifié celui du widget comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $(document).ready(function() {
        $(".js-datepicker").datepicker({
                    viewMode: "years",
                    weekStart: 1,
                    daysOfWeekHighlighted: "6,0",
                    autoclose: true,
                    todayHighlight: true,
                    startDate: '-30y',
                    endDate:'+0d',
                    format:  'yyyy/mm/dd'
                });
     
        $('.js-datepicker').datepicker("setDate", new Date());
    });
    Ce problème-là est donc résolu, merci à vous deux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Problème 'affichage d'erreur sur champ Date non valide
    Par charliejo dans le forum Symfony
    Réponses: 3
    Dernier message: 21/03/2015, 13h50
  2. Réponses: 1
    Dernier message: 29/04/2010, 09h31
  3. date non valide + liste déroulante
    Par bigboy dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/10/2009, 21h54
  4. Format de date non valide
    Par nbinot dans le forum PL/SQL
    Réponses: 13
    Dernier message: 29/10/2008, 17h05
  5. [VB.Net] cast du type 'DataRowview' en type 'Date' non valide
    Par badnane2 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 14/06/2006, 15h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo