
https://github.com/jinzhu/gorm/blob/master/model.go
type Model struct { ID uint `gorm:"primary_key"` CreatedAt time.Time UpdatedAt time.Time DeletedAt *time.Time `sql:"index"` } CreatedAt 和 UpdatedAt 都是非指针,DeletedAt 用了指针,这后面应该怎么理解呢
1 jingniao 2020-01-31 14:46:13 +08:00 via Android 指针允许空吧,不是指针的是非空 |
2 tairan2006 2020-01-31 15:34:43 +08:00 via Android 1 楼正解,time.Time 的默认值是 0000-00-00 |
3 chotow 2020-01-31 16:52:09 +08:00 via iPhone 举个例子,以 JSON 格式打印一个零值结构体时,非指针的结果是默认值,指针是 null。 这是一个点,还有的就是赋值写入等,可以再摸一下文档。 |
4 snoooow 2020-02-02 17:02:52 +08:00 结构体中的零值不会出现在 gorm 构造的查询条件中,但指针例外。然后删除一般是软删除,DeletedAt 字段初始为零值,删除之后会有值。把 DeletedAt 弄成指针,查询的时候就会自然带上 DeletedAt == nil,就能查到未删除的数据,而 CreatedAt 和 UpdatedAt 没有这种需求。 |