英文:
Undeclared Name const when using RAW Built-in function GORM
问题
我想在我的个人项目中使用GORM中的Raw函数作为要求。
这是我的实体:
type Student struct {
ID int `json:"id"`
Name string `json:"name"`
Address string `json:"address"`
}
所以我创建了一个常量来在RAW参数中调用:
const RetrieveData = `SELECT id, name, address FROM users WHERE id = ?`
然后我构建了一个函数:
type mysqlRepository struct {
GormDb *gorm.DB
}
func (repo *mysqlRepository) RetrieveUserData(id int) (Student, error) {
data := Student{}
db := db.GormDb.Raw(RetrieveData, 3).Scan(&data)
return data, db.Error
}
为什么我的函数会出现警告:
undeclared name: RetrieveData (compile)go-staticcheck
这是因为未声明的名称:RetrieveData 是一个未声明的变量。
英文:
I want to use Raw function in GORM as requirements on my personal project
This is my entity
type Student struct {
ID int `json:"id"`
Name string `json:"name"`
Address string `json:"address"`
}
so I create constant to be called in RAW param
const (RetrieveData = `SELECT id, name, address FROM users WHERE id = ?`)
And then I build function
type mysqlRepository struct {
GormDb *gorm.DB
}
func(repo *mysqlRepository) RetrieveUserData(id int) (Student, error) {
data := Student{}
db := db.GormDb.Raw(RetrieveData, 3).Scan(&data)
return data, db.Error
}
Why do I get warning on my function
undeclared name: RetrieveData (compile)go-staticcheck
Is it because untype string type?
答案1
得分: 1
很可能RetrieveData
在func RetrieveUserData
中不可访问。
要么将其移动到相同的包中,要么使用<package_name>.RetrieveData
。
英文:
Most probably RetrieveData
is not accessible in func RetrieveUserData
Either move it to same package or use <package_name>.RetrieveData
答案2
得分: 0
使用方法find()
err := DB.Raw("[sql]").Find(&data).Error
英文:
use method find()
err := DB.Raw("[sql]").Find(&data).Error
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论