Gorm执行SELECT*FROM tablename,但也执行WHERE";tablename"&引用;id"=0; 它返回未找到的记录

Gorm执行SELECT*FROM tablename,但也执行WHERE";tablename"&引用;id"=0; 它返回未找到的记录,go,go-gorm,Go,Go Gorm,我试图在Go中制作一个简单的博客API 这是我的结构 键入Blog结构{ Id int`gorm:“主键”json:“Id”` 作者字符串`gorm:“类型:varchar(100);非空”json:“作者”` 标题字符串`gorm:“类型:varchar(1000);非空”json:“标题”` 正文字符串`gorm:“大小:1000;非空”json:“正文”` } 除get all方法外,其他所有create get方法都有效 func(b*Blog)GetAll(db*gorm.db)(

我试图在Go中制作一个简单的博客API

这是我的结构

键入Blog结构{
Id int`gorm:“主键”json:“Id”`
作者字符串`gorm:“类型:varchar(100);非空”json:“作者”`
标题字符串`gorm:“类型:varchar(1000);非空”json:“标题”`
正文字符串`gorm:“大小:1000;非空”json:“正文”`
}
除get all方法外,其他所有create get方法都有效


func(b*Blog)GetAll(db*gorm.db)(*[]Blog,错误){
var博客[]博客
记录:=db.Find(&blogs)
if records.Error!=nil{
返回&[]日志{},记录。错误
}
返回&博客,无
}
此方法执行此查询,如调试输出中所示

从“blogs”中选择*,其中“blogs”。“id”=0按“blogs”排序。“id”限制1
显然不会有任何回报


我试着在文档中查找,但文档建议我只这样做。。。stackoverflow上没有人遇到过这个问题,所以我找到了问题所在

这是我的路线 因为如果我向/get/all发出get请求,那么首先定义了route/blog/{id} 它将默认为/blog/id,并将all作为id,当它转换为int时,它将出错,因此使用id=0,而不给我任何信息

所以为了解决这个问题,我不得不改变路线

像这样:


我希望有人能从我的愚蠢错误中吸取教训:>

你能再检查一下你是否使用了数据库吗?发现,看起来你已经使用了数据库。首先,取而代之。@prembhaskal检查我使用数据库的代码的图像。发现我不知道为什么它仍然这样做。请下次尝试使用文本@mkopriva我使用了降价格式的代码,但因为有人问我是否在IDE中做了相同的事情,这就是为什么我粘贴了一张图片,请阅读问题,然后回答我粘贴图片后。。。