duanlaiquan8174 2019-05-15 00:31
浏览 11
已采纳

如何使用struct显示所有记录

I am trying to fetch all data from a table. It returns all data but it is displaying only the last record. I am using GORM and GIN with Golang.

I tried to create a struct and pass that struct to the Find method.

type MpCountry struct{
        id uint
        Iso string
        Name string
        Nicename string
        Iso3 string
        Numcode uint
        phonecode uint
}

Code:

countries:=  DbModel.MpCountry{}
DbModel.DB.Debug().Find(&countries)
fmt.Println(countries)
fmt.Println("test")
log.Printf("%+v", countries)
return  &countries

Output

SELECT * FROM `mp_countries`
[239 rows affected or returned ]

{id:0 Iso:ZW Name:ZIMBABWE Nicename:Zimbabwe Iso3:ZWE Numcode:716 phonecode:0}
  • 写回答

1条回答 默认 最新

  • 普通网友 2019-05-15 01:27
    关注

    You are only passing in a struct, not a slice of structs. It is therefore replacing the values in the struct, until it reaches the last record.

    Instead, pass in a pointer to a slice:

    countries := &[]DbModel.MpCountry{}
    DbModel.DB.Debug().Find(countries)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面