2 回答

TA貢獻1806條經驗 獲得超5個贊
我認為用戶模型應該看起來像這樣..
type Users struct {
ID int64 `gorm:"id" json:"id"`
Name int64 `gorm:"name" json:"name"`
UserTypeID int `gorm:"column:user_type_id" json:"-"`
UserType BusinnesUserType `gorm:"foreignKey:UserTypeID;" json:"user_type"` // changed this line
LanguageID int64 `gorm:"column:language_id" json:"-"`
Language Language `gorm:"foreignKey:LanguageID;" json:"language"` // changed this line
}
更改了此行..
Language Language `gorm:"foreignKey:LanguageID;" json:"language"`
UserType BusinnesUserType `gorm:"foreignKey:UserTypeID;" json:"user_type"`
編輯你必須手動外鍵
// User : Relations
DB.Model(&models.Users{}).AddForeignKey("user_type_id", "Businnesusertypes(id)", "<CASCADE/RESTRICT>", "<CASCADE/RESTRICT>")
DB.Model(&models.Users{}).AddForeignKey("language_id", "languages(id)", "<CASCADE/RESTRICT>", "<CASCADE/RESTRICT>")

TA貢獻1784條經驗 獲得超8個贊
我已經找到了解決方案。問題出在“預加載”函數中,因為需要與預加載表的關系?,F在,我的 gorm 查詢是這樣的:
result := db.Preload("UserType", "id=?", &user.UserTypeID).
Preload("Language", "id=?", &user.LanguageID).
Where("business_users.id=?", 1).Find(&user)
我的結構是這樣的:
type BusinessUsers struct {
gorm.Model
Name string `gorm:"name" json:"name"`
UserTypeID int64
UserType BusinessUserType `gorm:"foreignkey:UserTypeID"`
LanguageID int64
Language Language `gorm:"foreignkey:LanguageID"`
}
- 2 回答
- 0 關注
- 104 瀏覽
添加回答
舉報