Your Question
The document you expected this should be explained
我有一个用户表和一个用户组的表,他们之间是多对多的关系,我自定义可以通过多对多的关联表实现查找/删除,但是增加报错,在迁移表结构的时候禁用了外键,使用的逻辑关联 用户表: 类型用户结构{ common.Model gorm.Model UserName string gorm:"column:username;type:varchar(50);not null;unique;comment:用户名" json:"username" form:"username" Groups []Group gorm:"many2many:user_groups" json:"groups,omitempty" } 组表: type Group struct { gorm.Model GroupName string gorm:"column:group_name;type:varchar(100);not null;unique;comment:用户组名" json:"group_name" form:"group_name" Describe string gorm:"column:describe;type:varchar(500);not null;comment:用户组描述" json:"describe" form:"describe" Users Users gorm:"many2many:user_groups" json:"users,omitempty" swaggerignore:"true" } 用户组和用户关联表(自定义): type UserGroup struct { gorm.Model UserID uint gorm:"index;column:user_id;type:bigint;not null;comment:用户ID" json:"user_id" form:"user_id" GroupID uint gorm:"index;column:group_id;type:bigint;not null;comment:用户组ID" json:"group_id" form:"group_id" 运算符字符串gorm:"column:operator;type:varchar(100);null;default:'';comment:操作人" json:"operator" form:"operator" IsOwner bool gorm:"column:is_owner;type:bool;default:false;comment:是否是owner" json:"is_owner" form:"is_owner"
}
func (UserGroup) TableName() string { return "user_groups" }
执行的操作: func (g Group) AddUserToGroup(c gin.Context) (err error) { var user1 User user1.ID = 1 user1.GetUserWithID(nil) a := db.Debug().Model(g) .Association("Users").Append(&user1) fmt.Println(a) return }
Expected answer
实际: 在用户user1和组g都已经存在的前提下,中间表UserGroup的记录不会创建,同时报告 用户user1已经存在
期望: 在用户user1和组g都已经存在的前提下, 数据能够在中间表UserGroup创建一条记录
Comment From: github-actions[bot]
The issue has been automatically marked as stale as it missing playground pull request link, which is important to help others understand your issue effectively and make sure the issue hasn't been fixed on latest master, checkout https://github.com/go-gorm/playground for details. it will be closed in 30 days if no further activity occurs. if you are asking question, please use the Question template, most likely your question already answered https://github.com/go-gorm/gorm/issues or described in the document https://gorm.io ✨ Search Before Asking ✨
Comment From: a631807682
duplicate of https://github.com/go-gorm/gorm/issues/5378