gpt4 book ai didi

go - 如何使用gorm制作外键

转载 作者:IT王子 更新时间:2023-10-29 01:56:42 25 4
gpt4 key购买 nike

我有这两个模型:

用户模型:

type User struct {
DBBase
Email string `gorm:"column:email" json:"email"`
Password string `gorm:"column:password" json:"-"`
}

func (User) TableName() string {
return "t_user"
}

用户信息模型:

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

并且我想让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
}

我确实尝试了 gorm 在文档中写的内容,但没有成功: http://doc.gorm.io/associations.html

最佳答案

Note!

from gorm 2.0 this is no longer necessary, read more here:gorm.io/docs/belongs_to.html#FOREIGN-KEY-Constraints

解决方法是在迁移数据库的时候加入这一行:

db.Model(&models.UserInfo{}).AddForeignKey("u_id", "t_user(id)", "RESTRICT", "RESTRICT")

migration (gorm documentation)

关于go - 如何使用gorm制作外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53014179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com