如何使用 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 高效过滤查询结果中的敏感信息?的详细内容,更多请关注其它相关文章!