Я пытаюсь создать API отдыха с Голангом.Каждый раз, когда создается пользователь, я хотел бы создать «Профиль», связанный с этим пользователем.
Первоначально я думал о том, чтобы сначала создать пользователя, а затем отдельно создать профиль, ссылающийся на идентификатор пользователя и вставить его в базу данных.
Я не уверен, следует ли использовать этот тип мышления в соответствии с тем, как идут дела, поскольку я только начинаю с языка.
Используя приведенный ниже код, я создаю пользователя, но не могу создать профиль.Я получаю эту ошибку: using unaddressable value
var db *gorm.DB
func GetDB() *gorm.DB {
return db
}
type User struct {
gorm.Model
Email string `gorm:"type:varchar(100);unique_index"`
Password string `json:"password"`
Name string `json:"name"`
Token string `json:"token";sql:"-"`
}
type Profile struct {
gorm.Model
User User `gorm:"foreignkey:UserRefer"` // use UserRefer as foreign key
UserRefer uint
FirstName string `gorm:"default:'John'"`
LastName string `gorm:"default:'Doe'"`
Description string `gorm:"default:'Mysterious'"`
}
func (user *User) Create() (map[string]interface{}) {
if resp, ok := user.Validate(); !ok {
return resp
}
hashedPassword, _ := bcrypt.GenerateFromPassword([]byte(user.Password), bcrypt.DefaultCost)
user.Password = string(hashedPassword)
GetDB().Create(user)
profile := Profile{}
profile.UserRefer = user.ID
GetDB().Create(profile)
if user.ID <= 0 {
return u.Message(false, "Failed to create account, connection error.")
}
response := u.Message(true, "Account has been created")
response["user"] = user
return response
}
Я надеюсь, что кто-нибудь сможет помочь мне понять, что здесь происходит не так?