2014-12-07 16 views
12

Symfony2'de aşağıdaki form türü ayarlanmış ve dateField için bir varsayılan değer eklemeye çalışıyorum ancak işe yaramayacak gibi görünüyor.Symfony2'de form değeri dönüştürücüsünde varsayılan değer ayarı

"Denedim 1" in altında "Formun görünüm verilerinin DateTime sınıfının bir örneği olması beklenir, ancak bir (n) dizgidir" hatası ... string bir DateTime nesnesi olması gerektiğini söyler ve "Denedim 2" de hatasız çalışır ancak varsayılan değerler değiştirilmez. Şu anda form varsayılan olarak '-0001-11-30 00:00:00'. Bu varsayılanları böyle ayarlamanın bir yolu var mı?

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

1 çalıştı:

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

2 çalıştı:

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

cevap

9

Sen trafo kullanmak zorunda değilsiniz. Sadece dize varsayılan değerini

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