beego關聯操作

一對多(反向多對一)結構體:
/*SysGroup 羣組 */
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:"創建時間"`
}

/*SysGroupMember 羣組成員 */
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{} // 關係n
fkGroup := SysGroup{Id: 1} // 關係1
formData.Group = &fkGroup // 向關係n中插入關係1類型對象
o.Insert(&formData) // 寫入數據庫
關聯插入
	/*AddGroupMember 新增羣成員*/
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)
發佈了114 篇原創文章 · 獲贊 39 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章