gorm v1 设置 foreignkey无效设置 foreignkey和association_foreignkey就生效
在 GORM v1 中,如果只设置 foreignkey,则它将不会被使用。必须同时设置 foreignkey 和 association_foreignkey 才能使其生效。
例如,假设我们有一个 User 模型和一个 Role 模型,它们是多对多关系。我们可以在 User 模型中设置 Roles 字段来表示此关系:
type User struct {
ID uint
Name string
Roles []Role `gorm:"many2many:user_roles;"`
}
type Role struct {
ID uint
Name string
}
在上面的代码中,我们没有指定 foreignkey 和 association_foreignkey,因此 GORM 尝试使用默认的外键名称。但是,这可能不会按照我们的预期工作,因此我们需要显式指定外键名称:
type User struct {
ID uint
Name string
Roles []Role `gorm:"many2many:user_roles;foreignkey:user_id;association_foreignkey:role_id"`
}
type Role struct {
ID uint
Name string
}
在上面的代码中,我们使用 foreignkey:user_id 和 association_foreignkey:role_id 来显式指定外键名称。这将确保我们使用正确的外键名称,并使关系正常工作。
原文地址: https://www.cveoy.top/t/topic/EgD 著作权归作者所有。请勿转载和采集!