gpt4 book ai didi

Golang gorm 有(就像在 Laravel 中)等效的方法?

转载 作者:IT王子 更新时间:2023-10-29 02:00:57 24 4
gpt4 key购买 nike

有没有办法告诉 gorm 只选择那些具有 hasOne 关系(AttractionsData)的行(Attractions)?与我在 Laravel 中使用“::has('relativeName)”一样吗?以下代码将返回包含具有空关系的景点的集合,而不是跳过它们

type Attractions struct {
ID uint `gorm:"primary_key"`
...
Active int `json:"-"`
AttractionsData AttractionsData `gorm:"foreignkey:AttractionID"`
}
type AttractionsData struct {
    ID uint `gorm:"primary_key"`
    AttractionID uint `json:"-"`
    Lang string `json:"lang"`
    Title string `json:"title"`
    Active int `json:"-"`
}
...
func someFunc(c *gin.Context){
...
db := config.DBConnect()
defer db.Close()
var atts []Attractions
db.Preload("AttractionsData", "lang = ? AND active = ?", lang, 1).
Where("country_id = ?", countryID).
Where("category_id = ?", categoryID).
Where("active = ?", 1).
Find(&atts)
...

最佳答案

我会先获取您想要的 ID:

ids := []int{}
db.Model(&AttractionData{}).
Where("lang = ? AND active = ?", lang, 1).
Pluck("attraction_id", &ids)
db.Preload("AttractionsData").
Where("id IN (?)", ids).
Where("category_id = ?", categoryID).
Where("active = ?", 1).
Find(&atts)

关于Golang gorm 有(就像在 Laravel 中)等效的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54662699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com