1
RedBeanIce OP 我尝试一下方案,也失败了。
``` sch := db.Statement.Schema value, ok := sch.FieldsByDBName["created_time"] if ok { fieldType := value.FieldType.String() if fieldType == "time.Time" { err := value.Set(db.Statement.Context, db.Statement.ReflectValue, time.Now()) if err != nil { return } } } ``` |
2
TossPig 2023-12-08 08:52:26 +08:00 1
不太懂这个用法哈,我平时用的 pgsql ,Gorm 原始支持 time.Time 存为 timestampz 或者时间戳,你着同时定义`CreatedBy`和`CreatedTime`的意义在哪?
看你的报错应该是生成的 sql 语法错误 官方文档提供的例子是没问题的 https://gorm.io/zh_CN/docs/hooks.html 你还用到了`Register`方法,这个不属于钩子了,这个是用于插件的 https://gorm.io/zh_CN/docs/write_plugins.html |
3
RedBeanIce OP @TossPig
按照官方的示例写,一个对方一个 hook 钩子也是 ok 的,但是重复代码太多了。 所以我想全局的使用他, 我 debug 模式下,可以通过反射的方式,为 CreatedTime updateTime 赋值当前时间,但是`无法成功保存`。 |
4
RedBeanIce OP |
5
RedBeanIce OP @TossPig 我看到了 plugin ,感谢回复。
|