Symfony 仅当未传递对象时,日期字段类型为默认值

Symfony 仅当未传递对象时,日期字段类型为默认值,symfony,datefield,Symfony,Datefield,我正在尝试我的第一个Symfony应用程序,但是当我使用表单时,一些有点违反直觉的事情发生了 从我的代码中可以看到,我有一个日期字段,默认为当前日期。但当我将对象传递给表单时,此默认值将覆盖对象的当前日期 我知道这是应该发生的(“表单字段的默认值直接取自基础数据结构(例如,实体或数组)。数据选项覆盖此默认值。”,来自) 是否有任何方法可以抑制此行为并仅在未传递对象时显示默认值 $builder // other code ->add('date', 'date', array(

我正在尝试我的第一个Symfony应用程序,但是当我使用表单时,一些有点违反直觉的事情发生了

从我的代码中可以看到,我有一个日期字段,默认为当前日期。但当我将对象传递给表单时,此默认值将覆盖对象的当前日期

我知道这是应该发生的(“表单字段的默认值直接取自基础数据结构(例如,实体或数组)。数据选项覆盖此默认值。”,来自)

是否有任何方法可以抑制此行为并仅在未传递对象时显示默认值

$builder

  // other code

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

 // other code

我可能会直接在我的新实体中设置它,而不是固定在表单中

class YourClass 
{
    private $date;
    //...

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

这似乎对我不起作用。不过,我已经将它改为“public function uu construct(){$this->date=new\DateTime(“now”);}”,这似乎很有效