【发布时间】:2019-06-13 09:49:31
【问题描述】:
我正在尝试使用 golang 创建一个 rest API。每次创建用户时,我都想创建一个与该用户关联的“个人资料”。
我最初的想法是首先创建用户,然后分别创建引用用户 ID 的配置文件并将其插入数据库。
我不确定是否应该使用这种思维方式,因为我只是从语言开始。
使用下面的代码,我创建了用户,但无法创建配置文件。我收到此错误: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
}
我希望有人能够帮助我了解这里出了什么问题?
【问题讨论】: