如何使用 GORM 高效过滤查询结果中的敏感信息?

如何使用 gorm 高效过滤查询结果中的敏感信息?

go 响应数据 vo 如何高效过滤 gorm 查询结果中的敏感信息?

假设你有一个 gorm 查询结果,其中包含包含敏感信息(例如密码)的数据结构。现在你需要过滤掉这些敏感信息,只返回必要的字段。

除了手动循环查询结果并创建删除敏感字段的映射外,还有更快捷的方法:

1. 使用 gorm 钩子

你可以使用 gorm 钩子在查询后自动清除敏感字段。在模型结构体中添加一个 afterfind 方法:

func (u *merchant) afterfind(tx *gorm.db) (err error) {
    u.password = ""
    return
}

2. 使用仅包含部分字段的结构体

你可以创建另一个只包含需要字段的结构体,然后使用该结构体接收查询结果:

type MerchantBase struct {
    Id       int    `json:"id" gorm:"comment:''"`
    Username string `json:"username" gorm:"comment:'用户名'"`
}

// 查询相关
db.Model(&Merchant{}).Find(&MerchantBase{})

以上就是如何使用 GORM 高效过滤查询结果中的敏感信息?的详细内容,更多请关注其它相关文章!