2014-12-07 80 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();