Php Symfony2:如何设置字段DateTime的默认值

Php Symfony2:如何设置字段DateTime的默认值,php,forms,symfony,datetime,Php,Forms,Symfony,Datetime,我使用Symfony 2.8 我有一个名为“Docentes”的表,其中有一个日期时间字段“fechaAlta” 我需要在添加新记录时,此字段的默认值为“今天” 我使用命令生成CRUDgenerate:doctrine:CRUD 在文件“DocentesController.php”中,Symfony创建了两个函数:“newAction”和“editAction”(等等)。两者都使用相同的格式,在文件夹“Form”中的文件“DocentesType.php”中插入: 我尝试了两种解决方案: 一:

我使用Symfony 2.8

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

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

我使用命令生成CRUD
generate:doctrine:CRUD

在文件“DocentesController.php”中,Symfony创建了两个函数:“newAction”和“editAction”(等等)。两者都使用相同的格式,在文件夹“Form”中的文件“DocentesType.php”中插入:

我尝试了两种解决方案:

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

  public function  __construct()
{
$this->fechaAlta = new \DateTime();    
}
但是,当我使用表单添加新记录时,字段“fechaAlta”显示了这些值​​: 第1天、第1个月和2011年。不是当前日期

二:

我编辑函数buildForm:

->add('fechaAlta', 'date', array(
                'data' => new \DateTime()))
 ##
现在,当我添加一个新记录时,我再次获得值:第1天、第1个月和第2011年,但当我编辑一个记录时,Symfony会更改我的原始值,例如2016-03-25并设置今天的值!与我所需要的完全相反

您应该替换:

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

另一种选择:

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

当我更改:'->add('fechaAlta','date',array('data'=>new\DateTime()))到'->add('fechaAlta','date',array('data'=>new\DateTime('now'))时,我会获得今天的日期,以防出现新记录,但在我编辑记录时仍然存在问题。您是否100%确定服务器&php.ini上的日期/时间/时区设置正确?无论如何,您可以调用
$entity->setFetchAlta(new\DateTime())newAction
中的code>?参数肯定是可选的,请参见php文档。
public function  __construct()
{
$this->fechaAlta = new \DateTime('now');    
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('fechaAlta', 'date', array(
            'empty_data' => new \DateTime('now'),
        ))
        ->add('dni')
    ;
}