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.