gpt4 book ai didi

doctrine - 使用 Doctrine 插入数据时忽略字段

转载 作者:行者123 更新时间:2023-12-02 04:48:01 26 4
gpt4 key购买 nike

我有以下问题:

实体具有经典的创建/更新时间戳字段,应将其设置为 UTC 中的当前时间戳。

在实体上,我使用 columnDefinition 属性将它们设置为 "TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP""TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"分别(这并没有导致实际拥有 TIMESTAMP 字段(必须在迁移中更改它)。

问题:Doctrine 不断为这些字段传递 NULL 值,但在服务器上“explicit_defaults_for_timestamp”是事件的,因此我得到一个错误而不是获取默认值。

如果我在这些字段上允许 NULL,那么我只会在 DB 中获得一个 NULL 值。

我不想使用 DateTime,因为这些值是由 PHP 服务器设置的(我在另一个时区使用数据库服务器,两者都可能会改变)。我也不想以编程方式强制 UTC,因为这会导致开发人员犯错误的代码。基本上我真的想让 mySQL 做它的事情并按照它的设计自动插入 DEFAULT_TIMESTAMP。

为此,我需要做的就是说服 Doctrine,它应该简单地跳过此字段而不发送任何值,而不是插入 created=NULL。

有谁知道实现这一目标的方法?

谢谢!

最佳答案

从实体中删除这些列/属性,因此 Doctrine 不知道它们并且不会尝试为它们发送空白/空值。然后,要么使用单独的(重复)实体仅用于读取目的,要么使用自定义 hydrator 来检索这些值。不优雅,但这是一个 Doctrine 问题。

关于doctrine - 使用 Doctrine 插入数据时忽略字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31322120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com