Ссылка на автоматически сгенерированные поля GORM в Go - PullRequest
0 голосов
/ 29 апреля 2018

Я пишу свой первый API, так что терпите меня. Я использую Go, Postgres и GORM и множество других вещей, которые я до сих пор собираю, но столкнулся с проблемой AutoMigrate GORM.

Изначально моя структура пользователя выглядела так:

type User struct {
    gorm.Model
    Email    string `gorm:"unique" json:"email"`
    Password string `json:"password"`
}

И когда я запустил db.AutoMigrate(&User{}) Он автоматически сгенерировал поле id в моей таблице User (вместе с несколькими полями даты), которое я хотел. Я зациклен на выяснении, как ссылаться на эти поля в моем приложении. Я изменил свою структуру User так, чтобы она теперь выглядела так:

type User struct {
    gorm.Model
    ID       int    `gorm:"primary_key" json:"id"`
    Email    string `gorm:"unique" json:"email"`
    Password string `json:"password"`
}

Но вместо того, чтобы связать два поля идентификатора, когда я получаю доступ к сохраненному объекту пользователя, как показано:

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>
}

Я понимаю, что ответ, вероятно, прямо перед моим лицом, должен быть способ ссылки на эти автоматически сгенерированные поля, верно?

1 Ответ

0 голосов
/ 29 апреля 2018

gorm.Model - это структура, включающая некоторые основные поля, включая поля ID, CreatedAt, UpdatedAt, DeletedAt.

Ссылка: http://gorm.io/docs/conventions.html#gorm-Model

...