2014-12-07 19 views
12

Ho il seguente tipo di modulo impostato in Symfony2 e sto cercando di aggiungere un valore predefinito a dateField ma non riesco a farlo funzionare.Impostazione del valore predefinito sul trasformatore del valore del modulo in Symfony2

In "Provato 1" di seguito ottengo un "I dati di visualizzazione del modulo dovrebbero essere un'istanza di classe DateTime, ma è un errore di" (n) stringa "che mi imbarazza un po 'perché se do un stringa mi dice che deve essere un oggetto DateTime, e in "Provato 2" viene eseguito senza errori ma non vengono modificati i valori predefiniti. Attualmente il modulo è impostato su "-0001-11-30 00:00:00". C'è un modo per impostare queste impostazioni predefinite come questa?

$builder 
     ->add(
      $builder->create('dateField', 'hidden')->addViewTransformer(new DateTimeToStringTransformer()) 
     ) 
     ->add('field2', 'hidden') 
     ->add('field3', 'hidden') 
     ->add('submit', 'submit') 
     ->getForm(); 

Provato 1:

->add($builder->create('boutDate', 'hidden', array('data' => new \DateTime()))->addViewTransformer(new DateTimeToStringTransformer())) 

Provato 2:

->add(
    $builder->create('boutDate', 'hidden')->addViewTransformer(new DateTimeToStringTransformer()), 
     'hidden', 
     array('data' => '2014-01-02') 
) 

risposta

9

Non è necessario usare il trasformatore. Basta impostare la stringa valore predefinito

$builder 
     ->add($builder->create('boutDate', 'hidden', array('data' => '2014-01-02'))) 
     ->add('field2', 'hidden') 
     ->add('field3', 'hidden') 
     ->add('submit', 'submit') 
     ->getForm(); 
Problemi correlati