type Base struct {
ID uint `gorm:"primary_key" json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt *gorm.DeletedAt `sql:"index" json:"deleted_at" swaggertype:"primitive,string"`
CreatedByID uint `gorm:"column:created_by_id" json:"created_by_id"`
UpdatedByID uint `gorm:"column:updated_by_id" json:"updated_by_id"`
}
如果我传递一些值给created_at和updated_at,它会把当前时间作为默认值,而不是我传递的值,有什么方法可以让gorm接受我传递的值吗?
3条答案
按热度按时间ndh0cuux1#
三种方式
1.为字段定义默认标签,使用database函数填写默认值。例如,对于MySQL数据库,可以使用
current_timestamp()
1.按照@Guolei的建议指定默认值。
1.将
gorm.Model
嵌入到你的结构体中,以自动处理ID、CreatedAt、UpdatedAt和DeletedAt。nnvyjq4y2#
如果包含字段:CreatedAt和UpdatedAt,gorm将使用reflect在执行时插入默认值。您也可以给予具体的值。
gjmwrych3#
更新@s3vt的回答:
如果你使用他们提供的第一个方法,你需要把这个函数放在没有括号的地方,如下所示:
我花了很多时间试图找出我得到的错误,所以我想我会分享它的人谁可能会面临这个!