相关疑难解决方法(0)

如何使用doctrine定义yaml中的当前时间戳?

我尝试了以下yaml代码:

columns:
  created_time:
    type: timestamp
    notnull: true
    default: default CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)

在输出的sql语句中,该字段被视为datetime而不是timestamp,我无法在其中定义当前时间戳...

如果我坚持使用时间戳来存储当前时间,那么如何在yaml中这样做?

yaml timestamp doctrine

14
推荐指数
3
解决办法
2万
查看次数

Doctrine:将 CURRENT_TIMESTAMP 设置为数据库的默认值(即不是 PHP)

环顾了一会后,我仍然找不到让数据库服务器插入 CURRENT_TIMESTAMP 的方法(作为默认值 on INSERT)。

问题:当您将对象持久保存到数据库时,Doctrine 将丢失的字段显式设置为 NULL。所以看起来,在表定义中设置默认值,根本没有任何影响:-(

我不想通过 PHP(例如$object->setTimestamp(new \DateTime());)设置时间,因为这可能返回与数据库服务器不同的时间,如下所述:https : //stackoverflow.com/a/3705090/1668200

到目前为止我尝试过的:

  • NOW字面意思发送(例如$object->setTimestamp('NOW()');),如下所述:https : //stackoverflow.com/a/13850741/1668200
    => 没用:Error: Call to a member function format() on string

  • 在持久化对象之前从对象中删除 'timestamp' 属性(参见/sf/answers/252053091/)也不起作用:无论如何,该字段被 Doctrine 设置为 NULL。

我发现的任何其他解决方案(包括 Doctrine 扩展“Timestampable” https://github.com/Atlantic18/DoctrineExtensions/blob/master/doc/timestampable.md)都使用 PHP 的时间。

php symfony doctrine-orm

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

doctrine ×1

doctrine-orm ×1

php ×1

symfony ×1

timestamp ×1

yaml ×1