Symfony 我可以在Doctrine中创建只读时间戳字段吗?

Symfony 我可以在Doctrine中创建只读时间戳字段吗?,symfony,doctrine,Symfony,Doctrine,我按照这个问题创建时间戳,该时间戳在数据库维护的创建和更新时保存: 问题是,现在我在使用原则保存记录时得到了一个“值不能为null”。我在生成的insert中看到它试图将时间戳保存为null。有没有办法避免在INSERT/UPDATE上设置列。为什么要让DB执行条令工作 如果你不映射,条令根本不会设置一列。但是你能看一下吗 另一种方法是使用。因此,您可以在PrePersist和PreUpdate上制作自己的,并在那里设置时间 如果您担心更改日期的setter,那么至少可以对该字段使用动态映射(当

我按照这个问题创建时间戳,该时间戳在数据库维护的创建和更新时保存:
问题是,现在我在使用原则保存记录时得到了一个“值不能为null”。我在生成的insert中看到它试图将时间戳保存为null。有没有办法避免在INSERT/UPDATE上设置列。

为什么要让DB执行条令工作

如果你不映射,条令根本不会设置一列。但是你能看一下吗

另一种方法是使用。因此,您可以在
PrePersist
PreUpdate
上制作自己的,并在那里设置时间

如果您担心更改日期的setter,那么至少可以对该字段使用动态映射(当您确实需要更改日期时,只需动态映射日期时间属性)。但不确定是否可以使用反射,因为您的实体可以位于代理类的后面


如果您仍然希望在数据库中保留业务逻辑,则可以只映射您真正想要更改的字段(在您的示例中不是datetime字段),然后编写自定义或(仅扩展其类),以填充您需要的所有字段(包括datetime)。此外,您还可以将新数据库配置为默认数据库(即在config.yml中的“条令配置”部分),这样它就可以在不做任何调整的情况下工作。

想象一下使用不同技术的多个应用程序使用的单个数据库。我希望尽可能地依赖数据库,因为它简化了一致性。好的,在这种情况下,数据库管理员将帮助您。我已经更新了我的答案(见最后一段)