diff --git a/.idea/GOHCache.xml b/.idea/GOHCache.xml
index c5e93b7..142c763 100644
--- a/.idea/GOHCache.xml
+++ b/.idea/GOHCache.xml
@@ -87,6 +87,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -326,7 +340,7 @@
-
+
@@ -352,6 +366,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -368,6 +402,8 @@
+
+
diff --git a/valid/valid.go b/valid/valid.go
index c6bd916..8647d0f 100644
--- a/valid/valid.go
+++ b/valid/valid.go
@@ -4,16 +4,29 @@ import (
"github.com/gin-gonic/gin"
"github.com/gogf/gf/v2/errors/gerror"
"github.com/gogf/gf/v2/frame/g"
+ "github.com/gogf/gf/v2/util/gconv"
)
// ValidAndStruct 验证参数并返回结构体
func ValidAndStruct[T any](c *gin.Context) (object *T) {
- object = new(T)
- if err := c.BindJSON(object); err != nil {
+ obj := new(T)
+ if err := c.BindJSON(obj); err != nil {
panic(err)
}
- if err := g.Validator().Data(object).Run(c); err != nil {
+ if err := g.Validator().Data(obj).Run(c); err != nil {
panic(gerror.Current(err).Error())
}
- return
+ return obj
+}
+
+// ValidAndMap 验证参数并返回map
+func ValidAndMap[T any](c *gin.Context) (object map[string]any) {
+ obj := new(T)
+ if err := c.BindJSON(obj); err != nil {
+ panic(err)
+ }
+ if err := g.Validator().Data(obj).Run(c); err != nil {
+ panic(gerror.Current(err).Error())
+ }
+ return gconv.Map(obj)
}