我正在尝试使用Doctrine和symfony4将我的对象插入我的MariaDB数据库中
我的表包含一个默认值为CURRENT_TIMESTAMP
的DATETIME
列timestamp
调用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 或文本