简体   繁体   English

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

[英]Setting default value on form value transformer in Symfony2

I have the following form type set up in Symfony2 and I'm trying to add a default value to dateField but can't seem to get it to work. 我在Symfony2中设置了以下表单类型,我正在尝试向dateField添加一个默认值,但似乎无法让它工作。

In "Tried 1" below I get a "The form's view data is expected to be an instance of class DateTime, but is a(n) string" error... which puzzles me a little because if I give a string it tells me it needs to be a DateTime object, and in "Tried 2" it runs without errors but no default values are changed. 在下面的“Tried 1”中,我得到一个“表单的视图数据应该是类DateTime的实例,但是是一个(n)字符串”错误...这让我感到困惑,因为如果我给它一个字符串它告诉我它必须是一个DateTime对象,并且在“Tried 2”中它运行时没有错误,但没有更改默认值。 Currently the form defaults to '-0001-11-30 00:00:00'. 目前表单默认为'-0001-11-30 00:00:00'。 Is there any way to set these defaults like this? 有没有办法设置这样的默认值?

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

Tried 1: 试过1:

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

Tried 2: 尝试2:

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

You don't have to use transformer. 您不必使用变压器。 Just set string default value 只需设置字符串默认值

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM