登录
首页 >  Golang >  Go问答

如何在 Gorm 中选择字段而不排除结构中的 JSON 字段?

来源:stackoverflow

时间:2024-02-28 14:45:30 188浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《如何在 Gorm 中选择字段而不排除结构中的 JSON 字段?》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

所以,我想创建一个 api,但是当我尝试使用选择字段进行查询时,我总是失败,我希望 api 的数据仅用于 id 和名称字段,我想删除电影字段而不忽略json因为其他url也需要这些字段,如何解决?

这是模型

type movie struct {
    id          int       `json:"id" validate:"number"`
    title       string    `json:"title"`
    description string    `json:"description"`
    year        int       `json:"year"`
    releasedate time.time `json:"release_date"`
    runtime     int       `json:"runtime"`
    rating      int       `json:"rating"`
    mpaarating  string    `json:"mpaa_rating"`
    createdat   time.time `json:"created_at"`
    updatedat   time.time `json:"updated_at"`
    genres      []genre   `json:"genres" gorm:"many2many:movie_genres"`
}

type genre struct {
    id        int       `json:"id"`
    genrename string    `json:"name"`
    movies    []movie   `json:"movies" gorm:"many2many:movie_genres"`
    createdat time.time `json:"-"`
    updatedat time.time `json:"-"`
}

type moviegenre struct {
    id        int       `json:"id"`
    movieid   int       `json:"movie_id"`
    genreid   int       `json:"genre_id"`
    genre     genre     `gorm:"foreignkey:genreid"`
    createdat time.time `json:"-"`
    updatedat time.time `json:"-"`
}

这是查询代码

func (MovieRepositoryImpl *MovieRepositoryImpl) GetGenres() (*[]Genre, error) {
    var genres []Genre
    err := MovieRepositoryImpl.DB.Find(&genres).Error
    if err != nil {
        return nil, err
    }

    return &genres, nil
}

这是结果

我想删除现场电影而不忽略 json


正确答案


如果您不想将参数:电影发送到后端并在没有电影的情况下进行响应,则可以,json 标记添加 omitempty

type Genre struct {
    ID        int       `json:"id"`
    GenreName string    `json:"name"`
    Movies    []Movie   `json:"movies,omitempty" gorm:"many2many:movie_genres"`
    CreatedAt time.Time `json:"-"`
    UpdatedAt time.Time `json:"-"`
}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>