2013-01-07 52 views
1

我会如何去设置表单的datetime字段的默认值到Symfony2中的当前时间?如何在Symfony2中将日期时间字段的默认值设置为当前时间?

我使用的FormBuilderInterface及以下不工作:

$builder->add(
    'completed_datetime', 'datetime', array('data' => new \DateTime('now')) 
); 

形式继续展示我的推测是对的日期时间字段:2008-01-01 00:00为默认值。

+1

它代替什么?你有错误吗?不工作不是说太多,你知道吗? – hakre

+0

@hakre - 道歉,我应该解释。它只是继续显示我认为是datetime字段的默认日期 - 2008-01-01 00:00 – Anonymous

+1

通常情况下,请在您的系统上逐字运行代码,看看您是否现在没有得到。 http://eval.in/6082 – hakre

回答

3

最后事实证明我正在查看我的页面的缓存版本。 Ctrl + F5清除缓存并显示所需的结果。

我能够实现我在​​这里公布的两种方式所需要的功能,即:

在Type类:

$builder->add(
    'completed_datetime', 'datetime', array('data' => new \DateTime('now')) 
); 

而且在我的控制器:

$task->setCompletedDateTime(new \DateTime('now')); 

我相信也可以在我的Task Entity类的构造函数中设置它。

+2

在类构造函数中这样做可能会产生副作用或导致错误的结果。请记住,当Doctrine从数据库加载实体时,类构造函数也会被执行。 – likeitlikeit

+0

你如何解决这个问题@likeitlikeit因为我在编辑时卡住了当前时间? –

+0

使用“数据”选项即使在编辑时也会将字段设置为datetime。这并不总是需要的。 – Forer

相关问题