在Symfony2中设置表单值转换器的默认值

13

我在Symfony2中设置了以下表单类型,并尝试为dateField添加默认值,但似乎无法使其工作。

在下面的“尝试1”中,我收到一个“表单的视图数据应该是DateTime类的实例,但是是字符串”错误...这让我有点困惑,因为如果我提供一个字符串,它会告诉我它需要是一个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')
)
1个回答

9

您无需使用转换器。只需设置字符串默认值即可。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接