相关疑难解决方法(0)

Doctrine - 为实体添加默认时间戳,如NOW()

遵循Doctrine准则,我了解如何为实体设置默认值,但如果我想要日期/时间戳怎么办?

我的问题是我的数据库在字段上有一个默认的NOW()但是当我使用Doctrine插入记录时,值为null或空白但插入的其余部分发生了.

此外,由于Doctrine声称将默认值声明为const,这也会产生问题.

建议?

php postgresql entities symfony doctrine-orm

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

doctrine 2.0:使用SQL时间戳

我正在寻找一种使用TIMESTAMP而不是DATETIMEMySql 来制作学说的方法.

另外我需要设置ON UPDATE CURRENT_TIMESTAMPCURRENT_TIMESTAMP默认值.

我希望有可能在PHP注释中包含所有这些代码,将所有内容放在一个中心位置.

我怎样才能做到这一点?

mysql timestamp doctrine-orm

7
推荐指数
2
解决办法
9981
查看次数

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-orm ×3

php ×2

symfony ×2

entities ×1

mysql ×1

postgresql ×1

timestamp ×1