一對多(反向多對一)結構體:
type SysGroup struct {
Id int `json:"id" required:"false" description:"羣id"`
GroupMpId int `json:"groupMpId" required:"false" description:"羣主id"`
GroupName string `orm:"unique" json:"groupName" required:"false" description:"羣名稱"`
GroupDes string `json:"groupDes" required:"false" description:"羣說明"`
CreateTime time.Time `orm:"auto_now_add;type(datetime)" json:"createTime" required:"false" description:"創建時間"`
}
type SysGroupMember struct {
Id int `orm:"auto" json:"id" required:"false" description:"id"`
UserId int `json:"userId" required:"false" description:"成員id(用戶id)"`
Group *SysGroup `orm:"rel(fk)" json:"group" required:"false" description:"組信息"`
CreateTime time.Time `orm:"auto_now_add;type(datetime)" json:"createTime" required:"false" description:"創建時間"`
}
關聯插入思路
formData := SysGroupMember{}
fkGroup := SysGroup{Id: 1}
formData.Group = &fkGroup
o.Insert(&formData)
關聯插入
func AddGroupMember(group *SysGroupMember, groupID int) int64 {
formData := SysGroupMember{}
formData.UserId = group.UserId
o := orm.NewOrm()
fkGroup := SysGroup{
Id: groupID,
}
formData.Group = &fkGroup
id, err := o.Insert(&formData)
fmt.Println(id)
if err == nil {
return id
}
return 0
}
關聯查詢
var groupList []SysGroupMember
o.QueryTable("sys_group_member").Filter("user_id", 1).RelatedSel().All(&groupList)