我正在寻找一种从GORM模型动态获取字段大小的方法。
一个明显的用例是,当您想要验证对象中的数据保存不超过GORM模型的定义,因此不超过DB列的大小。
type MyStruct struct {
field1 string `gorm:"size:10"`
}
func main(){
s := MyStruct {field1: "abcdefghijklmnopqrstuvwxyz"} // len 26 > 10
// if len(s.field1) < ...
db.Create(&s) // This will panic
}
是否有一种方法可以在运行时获得值10
?
使用reflect
包我们可以!
文档:https://golang.org/pkg/reflect/StructTag
使用给定示例编写代码:https://play.golang.org/p/1tmvU2eTkHJ