GORM 字段自动更新时间
时间: 2023-07-10 16:05:41 浏览: 363
自动更新时间
在 GORM 中,可以使用 `BeforeSave` 和 `BeforeUpdate` 钩子函数来自动更新字段时间。具体实现如下:
```go
import (
"time"
"gorm.io/gorm"
)
type User struct {
gorm.Model
Name string
CreatedAt time.Time
UpdatedAt time.Time
}
func (u *User) BeforeSave(tx *gorm.DB) (err error) {
if u.ID == 0 {
u.CreatedAt = time.Now()
}
u.UpdatedAt = time.Now()
return nil
}
```
在上面的例子中,定义了一个 `User` 结构体,其中包含了 `CreatedAt` 和 `UpdatedAt` 字段。在 `BeforeSave` 函数中,通过判断 `ID` 是否为 0 来判断是否为新数据,如果是新数据,则更新 `CreatedAt` 字段,否则更新 `UpdatedAt` 字段。
需要注意的是,`BeforeSave` 和 `BeforeUpdate` 钩子函数的返回值类型必须为 `error`,如果没有错误则返回 `nil`。
阅读全文