feat(valid): 添加参数验证并返回map功能
- 新增ValidAndMap函数用于验证参数并返回map类型 - 修改ValidAndStruct函数优化对象绑定逻辑 - 添加gconv包导入支持map转换功能 - 更新IDE缓存配置添加新的验证类型映射main v1.0.00021
parent
a1a2785c71
commit
0ad7304eca
|
|
@ -87,6 +87,20 @@
|
|||
</set>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="NewsOne">
|
||||
<value>
|
||||
<set>
|
||||
<option value="file://$PROJECT_DIR$/../gin_test/req/new.go" />
|
||||
</set>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="NewsSave">
|
||||
<value>
|
||||
<set>
|
||||
<option value="file://$PROJECT_DIR$/../gin_test/req/new.go" />
|
||||
</set>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="Paginate">
|
||||
<value>
|
||||
<set>
|
||||
|
|
@ -326,7 +340,7 @@
|
|||
<entry key="file://$PROJECT_DIR$/valid/valid.go">
|
||||
<value>
|
||||
<ScannedPath>
|
||||
<option name="lastModified" value="1770185876649" />
|
||||
<option name="lastModified" value="1770188345045" />
|
||||
</ScannedPath>
|
||||
</value>
|
||||
</entry>
|
||||
|
|
@ -352,6 +366,26 @@
|
|||
</ScannedPath>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="file://$PROJECT_DIR$/../gin_test/req/new.go">
|
||||
<value>
|
||||
<ScannedPath>
|
||||
<option name="lastModified" value="1770186504009" />
|
||||
<option name="schema">
|
||||
<list>
|
||||
<option value="NewsOne" />
|
||||
<option value="NewsSave" />
|
||||
</list>
|
||||
</option>
|
||||
</ScannedPath>
|
||||
</value>
|
||||
</entry>
|
||||
<entry key="file://$PROJECT_DIR$/../gin_test/router/router.go">
|
||||
<value>
|
||||
<ScannedPath>
|
||||
<option name="lastModified" value="1770187001756" />
|
||||
</ScannedPath>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
<option name="tableStructMapping">
|
||||
|
|
@ -368,6 +402,8 @@
|
|||
<entry key="jwt_config" value="JwtConfig" />
|
||||
<entry key="manager" value="Manager" />
|
||||
<entry key="msg" value="Msg" />
|
||||
<entry key="news_one" value="NewsOne" />
|
||||
<entry key="news_save" value="NewsSave" />
|
||||
<entry key="paginate" value="Paginate" />
|
||||
<entry key="response" value="response" />
|
||||
<entry key="server_config" value="ServerConfig" />
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue