从有条件的 gorm 中检索多对多结果
Retrieving many to many results from gorm with condition
例如这是我的模型
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)
您可以从语言预加载用户
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;"`
}
例如这是我的模型
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)
您可以从语言预加载用户
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;"`
}