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

加载模型与 关联

加载模型与 关联

Go
白衣染霜花 2022-08-01 15:29:29
我想加载帖子,并且是作者ID和电子邮件,而无需加载任何其他内容。它不需要急于加载,我只需要获取所有帖子,只包括作者ID和用户名我的当前查询posts := []interfaces.Post{}db.Model("User").Find(&posts)type Post struct{    gorm.Model    Title string    Body string    UserID uint    User User}type User struct{    gorm.Model    Username string    Email string    Password string}当前响应        {            "ID": 1,            "CreatedAt": "2021-01-09T19:11:42.063274-05:00",            "UpdatedAt": "2021-01-09T19:11:42.063274-05:00",            "DeletedAt": null,            "Title": "What does the fox say",            "Body": "whawhhwjg",            "UserID": 1,            "User": {                "ID": 1,                "CreatedAt": "2021-01-09T19:01:28.70267-05:00",                "UpdatedAt": "2021-01-09T19:01:28.70267-05:00",                "DeletedAt": null,                "Username": "12345",                "Email": "1112@gmail.com",                "Password": "$2a$04$T1841Dc52MwjSJ2PaPnTwuFASai6zkGw8WFcuQbO1fi9Nug7R3Iqq"            }        },我正在寻找的响应 {            "ID": 1,            "CreatedAt": "2021-01-09T19:11:42.063274-05:00",            "UpdatedAt": "2021-01-09T19:11:42.063274-05:00",            "DeletedAt": null,            "Title": "What does the fox say",            "Body": "whawhhwjg",            "UserID": 1,            "User": {                "ID": 1,                "Username": "12345",            }        },
查看完整描述

2 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

  • 您也可以通过这种方式进行

db.Preload("User").Select("ID", "Username").Find(&posts)


查看完整回答
反对 回复 2022-08-01
?
白衣非少年

TA贡献1155条经验 获得超0个赞

您可以使用该方法选择特定字段。Select


dm.Model("User").Select("ID", "Email", "Username").Find(&posts)

或者,您可以使用这样的方法。Preload


db.Preload("User", func (db *gorm.DB) *gorm.DB {

  return db.Select("ID", "Email", "Username")

}).

Find(&posts)


查看完整回答
反对 回复 2022-08-01
  • 2 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

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