在* Type类中定义的默认表单值

时间:2012-02-06 22:55:24

标签: php doctrine doctrine-orm

我有这样的表单定义类:

class HistorySliderType extends AbstractType
{

    /**
     * {@inheritdoc}
     */
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder
            ->add('date', 'datetime', array(
            'date_widget' => 'single_text',
            'time_widget' => 'single_text',
            'date_format' => 'yyyy-MM-dd',
            'with_seconds' => true
        ));
    }

    public function getDefaultOptions(array $options)
    {
        return array(
            'data' => array('date' => new \DateTime())
        );
    }

    /**
     * {@inheritdoc}
     */
    function getName()
    {
        return 'acme_tbundle_historyslidertype';
    }
}

我希望date字段为now作为默认值,而字段在表单呈现时保持空白。

我是否遗漏了某些内容,或者getDefaultOptions不应该用于指定初始(默认)表单值?

UPD

经过一番研究后,我开始认为这是一个错误,所以填补它:https://github.com/symfony/symfony/issues/3288

1 个答案:

答案 0 :(得分:1)

添加字段时使用data选项:

$builder->add('token', 'hidden', array(
    'data' => 'abcdef',
));