diff --git a/.idea/GOHCache.xml b/.idea/GOHCache.xml index 829d21b..c9c824c 100644 --- a/.idea/GOHCache.xml +++ b/.idea/GOHCache.xml @@ -90,6 +90,7 @@ + @@ -97,6 +98,7 @@ + @@ -340,7 +342,7 @@ - @@ -366,6 +368,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -382,7 +425,7 @@ - diff --git a/valid/valid.go b/valid/valid.go index b0f4c68..1278f49 100644 --- a/valid/valid.go +++ b/valid/valid.go @@ -10,7 +10,7 @@ import ( // ValidToStruct 验证参数并返回结构体 func ValidToStruct[T any](c *gin.Context) (object *T) { obj := new(T) - if err := c.BindJSON(obj); err != nil { + if err := c.Bind(obj); err != nil { panic(err) } if err := g.Validator().Data(obj).Run(c); err != nil { @@ -19,10 +19,22 @@ func ValidToStruct[T any](c *gin.Context) (object *T) { return obj } +// ValidToMap 验证参数并返回结构体 +func ValidToMap[T any](c *gin.Context) (object map[string]any) { + obj := new(T) + if err := c.Bind(obj); err != nil { + panic(err) + } + if err := g.Validator().Data(obj).Run(c); err != nil { + panic(gerror.Current(err).Error()) + } + return gconv.Map(obj) +} + // ValidToStructAndMap 验证参数并返回map func ValidToStructAndMap[T any](c *gin.Context) (stru *T, object map[string]any) { obj := new(T) - if err := c.BindJSON(obj); err != nil { + if err := c.Bind(obj); err != nil { panic(err) } if err := g.Validator().Data(obj).Run(c); err != nil {