多级递归修正
This commit is contained in:
		@@ -25,15 +25,15 @@ func LoadItem(requestedFields []ast.Selection) (data []string) {
 | 
				
			|||||||
	for _, field := range requestedFields {
 | 
						for _, field := range requestedFields {
 | 
				
			||||||
		fieldAST, _ := field.(*ast.Field)
 | 
							fieldAST, _ := field.(*ast.Field)
 | 
				
			||||||
		if funk.Contains(items, fieldAST.Name.Value) {
 | 
							if funk.Contains(items, fieldAST.Name.Value) {
 | 
				
			||||||
			data = append(data, fieldAST.Name.Value)
 | 
								name := fieldAST.Name.Value
 | 
				
			||||||
 | 
								name = strings.ToUpper(string(name[0])) + name[1:]
 | 
				
			||||||
 | 
								data = append(data, name)
 | 
				
			||||||
			for _, str := range LoadItem(fieldAST.SelectionSet.Selections) {
 | 
								for _, str := range LoadItem(fieldAST.SelectionSet.Selections) {
 | 
				
			||||||
				str = strings.ToUpper(string(str[0])) + str[1:]
 | 
									data = append(data, name+"."+str)
 | 
				
			||||||
				data = append(data, fieldAST.Name.Value+"."+str)
 | 
					 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if fieldAST.Name.Value == "list" {
 | 
							if fieldAST.Name.Value == "list" {
 | 
				
			||||||
			for _, str := range LoadItem(fieldAST.SelectionSet.Selections) {
 | 
								for _, str := range LoadItem(fieldAST.SelectionSet.Selections) {
 | 
				
			||||||
				str = strings.ToUpper(string(str[0])) + str[1:]
 | 
					 | 
				
			||||||
				data = append(data, str)
 | 
									data = append(data, str)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -638,7 +638,12 @@ func NewSchema(config Config) (graphql.Schema, error) {
 | 
				
			|||||||
			},
 | 
								},
 | 
				
			||||||
			Resolve: func(p graphql.ResolveParams) (interface{}, error) {
 | 
								Resolve: func(p graphql.ResolveParams) (interface{}, error) {
 | 
				
			||||||
				img := Image{ID: p.Args["id"].(int)}
 | 
									img := Image{ID: p.Args["id"].(int)}
 | 
				
			||||||
				if err := db.First(&img).Error; err != nil {
 | 
									query := db.Limit(1)
 | 
				
			||||||
 | 
									for index, item := range LoadItem(p.Info.FieldASTs[0].SelectionSet.Selections) {
 | 
				
			||||||
 | 
										fmt.Println(index, item)
 | 
				
			||||||
 | 
										query = query.Preload(item)
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
									if err := query.First(&img).Error; err != nil {
 | 
				
			||||||
					log.Println("获取图片失败", err)
 | 
										log.Println("获取图片失败", err)
 | 
				
			||||||
					return nil, err
 | 
										return nil, err
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user