登录
首页 >  Golang >  Go问答

如何在gorm hook(BeforeSave)中获取用户信息?

来源:stackoverflow

时间:2024-04-18 13:06:24 227浏览 收藏

你在学习Golang相关的知识吗?本文《如何在gorm hook(BeforeSave)中获取用户信息?》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

问题内容

我在全局模型中添加了一个字段 updateby ,它保存谁更新了该列,所以我想使用 hook(gorm) 来解析但我无法获取当前用户信息(使用 gin )

type GVA_MODEL struct {
    ID        uint           `gorm:"primarykey"` 
    CreatedAt time.Time      
    UpdatedAt time.Time     
    DeletedAt gorm.DeletedAt `gorm:"index" json:"-"` 
    UpdatedBy string
}

func (g *GVA_MODEL) BeforeSave(db *gorm.DB) (err error) {
    fmt.Println("----------get user name/ID----------")
    return
}

正确答案


beforesave 挂钩只能访问来自接收器的字段:g *gva_model

因此,如果您想在执行beforesave时传递一些额外的值,可以通过db.setdb.get传递它们。

// set user info from your gin controller...
db.Set("user_info", UserInfo{})

// access user_info from db instance's context
func (g *GVA_MODEL) BeforeSave(db *gorm.DB) (err error) {
    userInfo, _ := db.Get("user_info")
    fmt.Printf("----------get user name/ID----------: %v", userInfo)
    return
}

理论要掌握,实操不能落!以上关于《如何在gorm hook(BeforeSave)中获取用户信息?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>