2014-12-07 76 views
12

我在Symfony2中設置了以下窗體類型,我試圖將默認值添加到dateField,但似乎無法使其工作。在Symfony2中設置窗體值轉換器的默認值

在下面的「試驗1」中,我得到了「表單的視圖數據有望成爲類DateTime的一個實例,但是是一個(n)字符串」的錯誤......讓我感到有些困惑,因爲如果我給出字符串它告訴我它需要是一個DateTime對象,並在「嘗試2」它運行沒有錯誤,但沒有默認值更改。目前該表單默認爲'-0001-11-30 00:00:00'。有沒有辦法像這樣設置這些默認值?

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

試過1:

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

試過2:

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

回答

9

您不必使用變壓器。只需設置字符串默認值

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