为了账号安全,请及时绑定邮箱和手机立即绑定

从有条件的 gorm 中检索多对多结果

从有条件的 gorm 中检索多对多结果

Go
慕森王 2022-07-11 14:32:12
例如这是我的模型type User struct {  gorm.Model  Languages []Language `gorm:"many2many:user_languages;"`}type Language struct {  gorm.Model  Name string}我想获得有英语的用户。如何设置条件?我已经尝试过了,但它不起作用:db.Preload("Languages").Where("Language.Name = ?", conditionVal).Find(&users)
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

您可以从语言预加载用户


language := Language{}

db.Where("Name = ?", langVal).Preload("Users").Find(&language)

users := language.Users

您的模型也需要反向引用


type User struct {

    gorm.Model

    Languages []*Language `gorm:"many2many:user_languages;"`

}


type Language struct {

    gorm.Model

    Name  string

    Users []*User `gorm:"many2many:user_languages;"`

}


查看完整回答
反对 回复 2022-07-11
  • 1 回答
  • 0 关注
  • 235 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信