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

Symfony PHP Discussion :

Date et datetime


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Points : 4
    Points
    4
    Par défaut Date et datetime
    Bonjour tout le monde !

    J'ai un petit problème avec Symfony2 :
    Voilà j'ai une entité qui possède un champ "date_creation" et "lib". J'ai crée cette dernière en générant l'entité en console. Lorsque j'ai généré j'ai choisi le type "date" donc lorsque je regarde le fichier généré, le type de column est bien à date (car je vais stocker seulement la date dans la base de données) mais l'annotation pour la variable date_creation est de type Datime ? C'est normal ?

    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
     
     
        /**
         * @var string $lib
         *
         * @ORM\Column(name=XE_"LIB", type="string", length=255)
         */
        private $lib;
     
        /**
         * @var \DateTime $date_creation
         *
         * @ORM\Column(name="XE_DATE_CREATION", type="date")
         */
        private $date_creation;
    Mais ce n'est pas le problème même si je me demande pourquoi...
    Le problème est que j'ai crée un formulaire externe "entiteType" en console toujours. Dont le builder est celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        public function buildForm(FormBuilderInterface $builder, array $options)
        {     
            $builder
                ->add('lib')
                ->add('date_creation')
        }

    J'ai un problème lorsque je flush mon entité. En fait j'ai 3 cas :
    - Quand j'affiche le formulaire en entier pour chosir la date manuellement et le libellé => ca le flush bien OK.

    - Si je n'utilise pas le formulaire, je crée seulement une entité dont j'attribue des valeurs en brut comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     $e = new Entite();
    $e->setLib( "test" );
    $e->setDateCreation( new \Datetime('now') );
    => ca le flush bien ok.

    - MAIS si je fais un mix des deux, c'est-à-dire que j'utilise le formulaire mais je n'affiche que le libellé car je vois le choisir manuellement mais pas la date car la date est choisi automatiquement à la date d'aujourd'hui. La date est donc choisi de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $e = new Entite();
    $e->setDateCreation( new \Datetime('now') );
    Mais le champ date_creation du formulaire n'est pas afficher car pas besoin => Ca ne flush pas => J'ai une erreur qui me dit que la date est à null (contrainte d'intégrité). => J'ai var_dump la variable et effectivement la date est à null mais je ne sais pas pourquoi. Bizarre que l'annotation soit à datetime et le champ en base de donnée à date.

    Merci pour votre patience et votre aide.

    Cordialement,
    Mugen.

  2. #2
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2011
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2011
    Messages : 477
    Points : 677
    Points
    677
    Par défaut
    Bonjour,

    Si je comprends, tu souhaites qu'à la création de ton entité soit dater de la date de sa création.

    Si c'est cela, nul besoin de passer par le form_builder mais par la méthode __contruct de ton objet.

Discussions similaires

  1. conversion DATE en DATETIME
    Par sunwave dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/09/2008, 10h46
  2. Masque de saisie pour champs Date et Datetime
    Par lg022 dans le forum ASP.NET
    Réponses: 20
    Dernier message: 03/06/2008, 16h17
  3. [SQLSERVER2000] date mysql => datetime = probleme :s
    Par MeHo_ dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/03/2008, 17h00
  4. comment assigner une date à un DateTime?
    Par cortex024 dans le forum C#
    Réponses: 7
    Dernier message: 07/03/2007, 15h07
  5. Select d'une date en DATETIME
    Par mkaffel dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 03/08/2006, 10h51

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