繁体   English   中英

在奏鸣曲中设置日期的默认值

[英]Set default value for date in Sonata

我有一个日期,我想将当前日期设置为默认值,大多数帖子都建议添加'data' => new \DateTime()但在 Sonata 中有两个问题:

  1. 如果我将日期更改为随机日期,甚至将其留空,它仍会将当前日期保存在数据库中
  2. 在编辑视图中,它将覆盖创建视图中的日期,并且该值仍将是当前日期

我的代码:

$form->add('startDate', DateType::class, [
        'required' => false,
        'label' => 'Starting date',
        'data' => new \DateTime("now"),
        'constraints' => ...
   ])
]);

我错过了什么?

data属性将在所有情况下覆盖数据,您可以在DateType Field#data中阅读此处。

您可以做的是在实体中设置默认值,而不是按照什么是设置 Symfony object 的默认值的最佳方法中所述?

在实体中,您将拥有以下内容:

private $startDate = new \DateTime("now");

这样做的缺点是,当实体在 Sonata 之外创建时,它还会添加默认值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM