在Go中引用GORM自动生成的字段

在Go中引用GORM自动生成的字段,go,go-gorm,Go,Go Gorm,我正在编写我的第一个API,请耐心等待。我正在使用Go、Postgres和GORM以及许多其他我仍在学习的东西,但我遇到了GORM的自动迁移问题 最初,我的用户结构如下所示: type User struct { gorm.Model Email string `gorm:"unique" json:"email"` Password string `json:"password"` } type User struct { gorm.Model

我正在编写我的第一个API,请耐心等待。我正在使用Go、Postgres和GORM以及许多其他我仍在学习的东西,但我遇到了GORM的自动迁移问题

最初,我的用户结构如下所示:

type User struct {
    gorm.Model
    Email    string `gorm:"unique" json:"email"`
    Password string `json:"password"`
}
type User struct {
    gorm.Model
    ID       int    `gorm:"primary_key" json:"id"`
    Email    string `gorm:"unique" json:"email"`
    Password string `json:"password"`
}
当我运行
db.AutoMigrate(&User{})
时,它会在我的用户表中自动生成一个id字段(以及几个日期字段),这是我想要的。我最担心的是如何在我的应用程序中引用这些字段。我已将我的用户结构修改为如下所示:

type User struct {
    gorm.Model
    Email    string `gorm:"unique" json:"email"`
    Password string `json:"password"`
}
type User struct {
    gorm.Model
    ID       int    `gorm:"primary_key" json:"id"`
    Email    string `gorm:"unique" json:"email"`
    Password string `json:"password"`
}
但当我访问存储的用户对象时,不是链接两个id字段,如图所示:

user := model.User{}
if err := db.First(&user, model.User{Email: email}).Error; err != nil {
    respondError(w, http.StatusNotFound, err.Error())
    return nil
}
现在有两个不同的字段,自动生成字段和我自己的字段:

{
"ID": 2,
"CreatedAt": "2018-04-28T21:14:20.828547-04:00",
"UpdatedAt": "2018-04-28T21:14:20.828547-04:00",
"DeletedAt": null,
"id": 0,
"email": "joeynelson@gmail.com",
"password": <hash>
}
{
“ID”:2,
“CreatedAt”:“2018-04-28221:14:20.828547-04:00”,
“更新日期”:“2018-04-28221:14:20.828547-04:00”,
“DeletedAt”:空,
“id”:0,
“电子邮件”:joeynelson@gmail.com",
“密码”:
}

我意识到答案可能就在我面前,一定有办法引用这些自动生成的字段,对吗?

gorm.Model
是一个包含一些基本字段的结构,其中包括字段
ID
CreatedAt
UpdatedAt
DeletedAt


参考:

gorm.Model
是一个包含一些基本字段的结构,其中包括字段
ID
CreatedAt
UpdatedAt
DeletedAt

参考: