我能够通过这种情况部分解决这个问题不幸的是,Preload() 函数似乎不适用于深入研究相关对象集。为了澄清,我有以下模型: type Room struct { gorm.Model Name string Games []Game `gorm:"ForeignKey:RoomID"` } type Game struct { gorm.Model RoomID int `gorm:"index"` Players []Player `gorm:"ForeignKey:GameID"` } type Player struct { gorm.Model Name string GameID int `gorm:"index"` }当我创建一个包含新房间、游戏和玩家对象的新对象时,我会返回以下数据(json 编码): {"Value":{"ID":26,"CreatedAt":"2016-05-15T01:21:22.426234189-07:00","UpdatedAt":"2016-05-15T01:21:22.426234189-07:00","DeletedAt":null,"Name":"foo","Games":[{"ID":17,"CreatedAt":"2016-05-15T01:21:22.427026134-07:00","UpdatedAt":"2016-05-15T01:21:22.427026134-07:00","DeletedAt":null,"RoomID":26,"Turns":null,"Players":[{"ID":4,"CreatedAt":"2016-05-15T01:21:22.427560561-07:00","UpdatedAt":"2016-05-15T01:21:22.427560561-07:00","DeletedAt":null,"Name":"TestPlayer","GameID":17}],"Counter":1,"Assigned":false}],"Testing":false},"Error":null,"RowsAffected":1}但是,如果我尝试使用 preload() 函数查询结构,我会得到以下信息: {"Value":{"ID":26,"CreatedAt":"2016-05-15T01:21:22.426234189-07:00","UpdatedAt":"2016-05-15T01:21:22.426234189-07:00","DeletedAt":null,"Name":"foo","Games":[{"ID":17,"CreatedAt":"2016-05-15T01:21:22.427026134-07:00","UpdatedAt":"2016-05-15T01:21:22.427026134-07:00","DeletedAt":null,"RoomID":26,"Turns":null,"Players":null,"Counter":1,"Assigned":false}],"Testing":false},"Error":null,"RowsAffected":1}请注意,Players 部分现在为空。这是我的房间注册和房间查询功能: func RegisterRoom(w http.ResponseWriter, r *http.Request) { err := r.ParseForm() if err != nil { // Handle error }
- 1 回答
- 0 关注
- 205 浏览
添加回答
举报
0/150
提交
取消
