我有这两个模型:
用户模型:
type User struct {
DBBase
Email string `gorm:"column:email" json:"email"`
Password string `gorm:"column:password" json:"-"`
}
func (User) TableName() string {
return "t_user"
}
Run Code Online (Sandbox Code Playgroud)
用户信息模型:
type UserInfo struct {
User User `gorm:"foreignkey:u_id;association_foreignkey:id"`
UID uint `gorm:"column:u_id" json:"-"`
FirstName string `gorm:"column:first_name" json:"first_name"`
LastName string `gorm:"column:last_name" json:"last_name"`
Phone string `gorm:"column:phone" json:"phone"`
Address string `gorm:"column:address" json:"address"`
}
func (UserInfo) TableName() string {
return "t_user_info"
}
Run Code Online (Sandbox Code Playgroud)
我想让 UID 与用户表的 id 相关。
这是创建用户的函数:
func (dao *AuthDAO) Register(rs app.RequestScope, user *models.User, userInfo *models.UserInfo) (userErr error, userInfoErr error) {
createUser := rs.Db().Create(&user)
userInfo.UID = user.ID
createUserInfo := rs.Db().Create(&userInfo)
return createUser.Error, createUserInfo.Error
}
Run Code Online (Sandbox Code Playgroud)
我确实尝试了 gorm 在文档上写的内容,但没有成功:http ://doc.gorm.io/associations.html
解决办法是在迁移数据库的时候加上这一行:
db.Model(&models.UserInfo{}).AddForeignKey("u_id", "t_user(id)", "RESTRICT", "RESTRICT")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11070 次 |
| 最近记录: |