symfony 4 原则插入具有自动生成的日期时间和默认值CURRENT_TIMESTAMP的新对象时出错



我正在尝试使用Doctrine和symfony4将我的对象插入我的MariaDB数据库中

我的表包含一个默认值为CURRENT_TIMESTAMPDATETIMEtimestamp

调用persist()时,原则崩溃并出现以下错误:

Could not convert PHP value 'CURRENT_TIMESTAMP' of type 'string' to type 'datetime'. Expected one of the following types: null, DateTime

我不明白为什么,因为这应该由插入时的数据库自动生成。我应该提供一个"日期时间"吗?请问有解决方法吗?

我发现的最佳解决方案是使用原则生命周期事件并使用onPrePersist和/或onPreUpdate事件。

本主题和官方文档中介绍了完整的解决方案。

这样,我就可以使用Symfony 4.4将当前时间保存在时间戳列中。

更改数据库 'CURRENT_TIMESTAMP' 键入 varchar 或文本

最新更新