feat: 优化注册方法检测
This commit is contained in:
@@ -49,14 +49,17 @@ func (s *server) injectCommonParam(ctx *gin.Context, formValue any) error {
|
||||
} else {
|
||||
reflectType = reflectFormValue.Type()
|
||||
}
|
||||
if reflectType.Kind() == reflect.Ptr {
|
||||
reflectType = reflectType.Elem()
|
||||
}
|
||||
|
||||
fieldTable := map[string]bool{}
|
||||
fieldNum := reflectType.Elem().NumField()
|
||||
fieldNum := reflectType.NumField()
|
||||
for i := 0; i < fieldNum; i++ {
|
||||
if reflectType.Elem().Field(i).Anonymous && // 是匿名字段, 再做一次解析
|
||||
((reflectType.Elem().Field(i).Type.Kind() == reflect.Ptr && reflectType.Elem().Field(i).Type.Kind() == reflect.Struct) || // 结构体指针
|
||||
reflectType.Elem().Field(i).Type.Kind() == reflect.Struct) { // 结构体
|
||||
anonymousFieldType := reflectType.Elem().Field(i).Type
|
||||
if reflectType.Field(i).Anonymous && // 是匿名字段, 再做一次解析
|
||||
((reflectType.Field(i).Type.Kind() == reflect.Ptr && reflectType.Field(i).Type.Kind() == reflect.Struct) || // 结构体指针
|
||||
reflectType.Field(i).Type.Kind() == reflect.Struct) { // 结构体
|
||||
anonymousFieldType := reflectType.Field(i).Type
|
||||
if anonymousFieldType.Kind() == reflect.Ptr {
|
||||
anonymousFieldType = anonymousFieldType.Elem()
|
||||
}
|
||||
@@ -65,7 +68,7 @@ func (s *server) injectCommonParam(ctx *gin.Context, formValue any) error {
|
||||
}
|
||||
} else {
|
||||
// 提取全部结构体字段
|
||||
fieldTable[reflectType.Elem().Field(i).Name] = true
|
||||
fieldTable[reflectType.Field(i).Name] = true
|
||||
}
|
||||
}
|
||||
for fieldName, getParamFunc := range s.commonParam {
|
||||
|
||||
Reference in New Issue
Block a user