Symfony2:如何为字段DateTime

时间:2016-04-02 00:23:03

标签: php forms symfony datetime

我使用Symfony 2.8

我有一个名为“Docentes”的表,其日期时间字段为“fechaAlta”

当我添加新记录时,我需要此字段的默认值为“今天”

我使用命令generate:doctrine:crud

生成CRUD

在文件“DocentesController.php”中,Symfony创建了两个函数:“newAction”和“editAction”(以及其他)。两者都使用相同的表单,插入“表单”文件夹中的文件“DocentesType.php”:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder

        ->add('fechaAlta', 'date')
        ->add('dni')
        #
    ;
}

我尝试了两种解决方案:

ONE:在名为“Docentes.php”的实体文件中,我添加了函数:

  public function  __construct()
{
$this->fechaAlta = new \DateTime();    
}

但是当我使用表单添加新记录时,字段“fechaAlta”会显示值:Day 01,Month 01和Year 2011.与当前日期不同。

二:

我编辑函数buildForm:

->add('fechaAlta', 'date', array(
                'data' => new \DateTime()))
 ##

现在,当我添加新记录时,我再次获得值:第01天,第01个月和2011年,但是当我编辑记录时,Symfony会更改我的原始值,例如2016-03-25并设置今天值!与我所需要的完全相反!

2 个答案:

答案 0 :(得分:0)

你应该替换:

http://mysite[dot]com/link.php?id=http://example.com/textbook/book1.php

通过

public function  __construct()
{
$this->fechaAlta = new \DateTime();    
}

答案 1 :(得分:0)

另一种选择:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('fechaAlta', 'date', array(
            'empty_data' => new \DateTime('now'),
        ))
        ->add('dni')
    ;
}