使用DateType在Symfony表单中的创建/编辑模式下的默认数据

时间:2018-12-15 20:09:09

标签: symfony

在Symfony表单中,我有:

->add('fechalimite', DateType::class, [
  'format' => 'dMMMMyyyy',
  'data' => new \DateTime(),
])

打开表单,我今天的日期是fechalimite字段:2018年12月15日。我可以更改字段,例如。 2018年12月28日,我没有任何问题地提交了数据库更改。

问题来了,编辑表格。当我编辑字段时,请输入今天的日期,而不是2018年12月28日。

我正在寻找不保留在编辑模式下的默认数据。

如何解决?

2 个答案:

答案 0 :(得分:1)

您可以使用您的实体构造函数来设置默认值,如下所示:

class YourEntity {
  private $fechalimite;

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

这将在您创建新实体时设置默认值。

答案 1 :(得分:0)

我找到了区分创建和编辑的解决方案:

$formMapper;

    if ($this->isCurrentRoute('create')) {
    $formMapper
        ->add('fechalimite', DateType::class, [
          'format' => 'dMMMMyyyy',
          'data' => new \DateTime(),
        ])
        ;
    } else {
    $formMapper
        ->add('fechalimite', DateType::class, [
          'format' => 'dMMMMyyyy',
        ])
        ;
    }
相关问题