feat(valid): 添加参数验证并返回map功能

- 新增ValidAndMap函数用于验证参数并返回map类型
- 修改ValidAndStruct函数优化对象绑定逻辑
- 添加gconv包导入支持map转换功能
- 更新IDE缓存配置添加新的验证类型映射
This commit is contained in:
2026-02-04 14:59:26 +08:00
parent a1a2785c71
commit 0ad7304eca
2 changed files with 54 additions and 5 deletions
+17 -4
View File
@@ -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)
}