beego orm 多对多插入和查询操作

// User 用户表
type User struct {
	ID       int
	UserName string
	Password string
	Articles []*Article `orm:"rel(m2m)"`
}

// Article 文章表
type Article struct {
	ID       int       `orm:"pk;auto"`
	Artiname string    `orm:"size(60)"`
	Atime    time.Time `orm:"auto_now"`
	Acount   int       `orm:"default(20);null"`
	Acontent string
	Aimg     string
	ArticleType *ArticleType `orm:"rel(fk)"`
	Users []*User `orm:"reverse(many)"`
}

  

// 多对多插入,user
        article := models.Article{ID: id}
	// 1 获取多对多操对象
	m2m := o.QueryM2M(&article, "Users")
	// 2 获取插入对象
	username := c.GetSession("username").(string)
	beego.Info(username)
	var user = models.User{UserName: username}
	o.Read(&user, "UserName")
	// 3 多对多插入
	_, err = m2m.Add(&user)
	if err != nil {
		beego.Info("插入多对多失败")
	}    
// 多对多查询
 
        article := models.Article{ID: id}
        err = o.QueryTable("Article").RelatedSel("ArticleType").One(&article)
     o.LoadRelated(&article,"Users")      

  删除方法和添加方法一样,将add改成Remove即可。

猜你喜欢

转载自www.cnblogs.com/Mishell/p/12178724.html