【问题标题】:Dynamically get field's size in Gorm在 Gorm 中动态获取字段的大小
【发布时间】:2021-07-10 10:28:25
【问题描述】:

我正在寻找一种从 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

【问题讨论】:

    标签: go go-gorm


    【解决方案1】:

    我们可以使用reflect 包!

    文档:https://golang.org/pkg/reflect/#StructTag

    给定示例的代码:https://play.golang.org/p/1tmvU2eTkHJ

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-17
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      • 1970-01-01
      • 2021-03-23
      • 2017-03-19
      相关资源
      最近更新 更多