Refact scope Fields

This commit is contained in:
Jinzhu 2014-07-30 15:15:23 +08:00
parent 0d3085393e
commit 9b3be66a77

View File

@ -315,24 +315,18 @@ func (scope *Scope) fieldFromStruct(fieldStruct reflect.StructField) *Field {
} }
// Fields get value's fields // Fields get value's fields
func (scope *Scope) Fields() []*Field { func (scope *Scope) Fields() (fields []*Field) {
indirectValue := scope.IndirectValue() if scope.IndirectValue().IsValid() {
fields := []*Field{} scopeTyp := scope.IndirectValue().Type()
for i := 0; i < scopeTyp.NumField(); i++ {
if !indirectValue.IsValid() { fieldStruct := scopeTyp.Field(i)
return fields if !ast.IsExported(fieldStruct.Name) {
} continue
}
scopeTyp := indirectValue.Type() fields = append(fields, scope.fieldFromStruct(fieldStruct))
for i := 0; i < scopeTyp.NumField(); i++ {
fieldStruct := scopeTyp.Field(i)
if !ast.IsExported(fieldStruct.Name) {
continue
} }
fields = append(fields, scope.fieldFromStruct(fieldStruct))
} }
return
return fields
} }
// Raw set sql // Raw set sql