使用 RAW 内置函数 GORM 时出现未声明的名称 const。

huangapple go评论78阅读模式
英文:

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

很可能RetrieveDatafunc RetrieveUserData中不可访问。
要么将其移动到相同的包中,要么使用<package_name>.RetrieveData

英文:

Most probably RetrieveData is not accessible in func RetrieveUserData
Either move it to same package or use &lt;package_name&gt;.RetrieveData

答案2

得分: 0

使用方法find()

err := DB.Raw("[sql]").Find(&data).Error
英文:

use method find()

err := DB.Raw(&quot;[sql]&quot;).Find(&amp;data).Error

huangapple
  • 本文由 发表于 2022年8月24日 17:50:47
  • 转载请务必保留本文链接:https://go.coder-hub.com/73470995.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定