我正在尝试从表中获取所有数据。它返回所有数据,但仅显示最后一条记录。我在Golang中使用GORM和GIN。

我试图创建一个结构并将该结构传递给Find方法。

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

码:

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

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

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

最佳答案

您仅传递结构,而不传递结构的 slice 。因此,它将替换结构中的值,直到到达最后一条记录。

相反,传入指向 slice 的指针:

countries := &[]DbModel.MpCountry{}
DbModel.DB.Debug().Find(countries)

关于go - 如何使用struct显示所有记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56140303/

10-11 14:17