Подтвердить что ты не робот

Установка значения по умолчанию для преобразователя значения формы в Symfony2

У меня есть следующий тип формы, настроенный в Symfony2, и я пытаюсь добавить значение по умолчанию к dateField, но, похоже, не может заставить его работать.

В "Tried 1" ниже я получаю "Данные вида формы, как ожидается, будут экземпляром класса DateTime, но являются (n) строкой" error... ", которая меня немного озадачивает, потому что, если я даю строку он говорит мне, что это должен быть объект DateTime, а в" Tried 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')
)
4b9b3361

Ответ 1

Вам не нужно использовать трансформатор. Просто установите значение по умолчанию для строки

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