feat(valid): 更新验证功能支持多种绑定方式
- 修改 ValidToStruct 函数使用 c.Bind 替代 c.BindJSON - 新增 ValidToMap 函数支持将参数验证后转换为 map 类型 - 更新 ValidToStructAndMap 函数使用 c.Bind 进行参数绑定 - 添加相应的错误处理和类型转换逻辑 - 更新项目缓存配置文件中的文件扫描路径信息main
parent
8927551779
commit
258112d38e
|
|
@ -90,6 +90,7 @@
|
||||||
<entry key="NewsOne">
|
<entry key="NewsOne">
|
||||||
<value>
|
<value>
|
||||||
<set>
|
<set>
|
||||||
|
<option value="file://$PROJECT_DIR$/../gin_test/api/new.go" />
|
||||||
<option value="file://$PROJECT_DIR$/../gin_test/req/new.go" />
|
<option value="file://$PROJECT_DIR$/../gin_test/req/new.go" />
|
||||||
</set>
|
</set>
|
||||||
</value>
|
</value>
|
||||||
|
|
@ -97,6 +98,7 @@
|
||||||
<entry key="NewsSave">
|
<entry key="NewsSave">
|
||||||
<value>
|
<value>
|
||||||
<set>
|
<set>
|
||||||
|
<option value="file://$PROJECT_DIR$/../gin_test/api/new.go" />
|
||||||
<option value="file://$PROJECT_DIR$/../gin_test/req/new.go" />
|
<option value="file://$PROJECT_DIR$/../gin_test/req/new.go" />
|
||||||
</set>
|
</set>
|
||||||
</value>
|
</value>
|
||||||
|
|
@ -340,7 +342,7 @@
|
||||||
<entry key="file://$PROJECT_DIR$/valid/valid.go">
|
<entry key="file://$PROJECT_DIR$/valid/valid.go">
|
||||||
<value>
|
<value>
|
||||||
<ScannedPath>
|
<ScannedPath>
|
||||||
<option name="lastModified" value="1770188678912" />
|
<option name="lastModified" value="1770192971883" />
|
||||||
</ScannedPath>
|
</ScannedPath>
|
||||||
</value>
|
</value>
|
||||||
</entry>
|
</entry>
|
||||||
|
|
@ -366,6 +368,47 @@
|
||||||
</ScannedPath>
|
</ScannedPath>
|
||||||
</value>
|
</value>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry key="file://$PROJECT_DIR$/../gin_test/api/home.go">
|
||||||
|
<value>
|
||||||
|
<ScannedPath>
|
||||||
|
<option name="lastModified" value="1770190095707" />
|
||||||
|
</ScannedPath>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="file://$PROJECT_DIR$/../gin_test/api/new.go">
|
||||||
|
<value>
|
||||||
|
<ScannedPath>
|
||||||
|
<option name="lastModified" value="1770191206242" />
|
||||||
|
<option name="schema">
|
||||||
|
<list>
|
||||||
|
<option value="NewsOne" />
|
||||||
|
<option value="NewsSave" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</ScannedPath>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="file://$PROJECT_DIR$/../gin_test/controller/home/houeRouter.go">
|
||||||
|
<value>
|
||||||
|
<ScannedPath>
|
||||||
|
<option name="lastModified" value="1770191001042" />
|
||||||
|
</ScannedPath>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="file://$PROJECT_DIR$/../gin_test/controller/home/index.go">
|
||||||
|
<value>
|
||||||
|
<ScannedPath>
|
||||||
|
<option name="lastModified" value="1770191170351" />
|
||||||
|
</ScannedPath>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="file://$PROJECT_DIR$/../gin_test/controller/home/router.go">
|
||||||
|
<value>
|
||||||
|
<ScannedPath>
|
||||||
|
<option name="lastModified" value="1770190557848" />
|
||||||
|
</ScannedPath>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
<entry key="file://$PROJECT_DIR$/../gin_test/req/new.go">
|
<entry key="file://$PROJECT_DIR$/../gin_test/req/new.go">
|
||||||
<value>
|
<value>
|
||||||
<ScannedPath>
|
<ScannedPath>
|
||||||
|
|
@ -382,7 +425,7 @@
|
||||||
<entry key="file://$PROJECT_DIR$/../gin_test/router/router.go">
|
<entry key="file://$PROJECT_DIR$/../gin_test/router/router.go">
|
||||||
<value>
|
<value>
|
||||||
<ScannedPath>
|
<ScannedPath>
|
||||||
<option name="lastModified" value="1770188593199" />
|
<option name="lastModified" value="1770191024510" />
|
||||||
</ScannedPath>
|
</ScannedPath>
|
||||||
</value>
|
</value>
|
||||||
</entry>
|
</entry>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import (
|
||||||
// ValidToStruct 验证参数并返回结构体
|
// ValidToStruct 验证参数并返回结构体
|
||||||
func ValidToStruct[T any](c *gin.Context) (object *T) {
|
func ValidToStruct[T any](c *gin.Context) (object *T) {
|
||||||
obj := new(T)
|
obj := new(T)
|
||||||
if err := c.BindJSON(obj); err != nil {
|
if err := c.Bind(obj); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
if err := g.Validator().Data(obj).Run(c); err != nil {
|
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
|
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
|
// ValidToStructAndMap 验证参数并返回map
|
||||||
func ValidToStructAndMap[T any](c *gin.Context) (stru *T, object map[string]any) {
|
func ValidToStructAndMap[T any](c *gin.Context) (stru *T, object map[string]any) {
|
||||||
obj := new(T)
|
obj := new(T)
|
||||||
if err := c.BindJSON(obj); err != nil {
|
if err := c.Bind(obj); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
if err := g.Validator().Data(obj).Run(c); err != nil {
|
if err := g.Validator().Data(obj).Run(c); err != nil {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue