add support for ptr to extends struct
This commit is contained in:
parent
a49c17bff0
commit
aed19a5f81
14
column.go
14
column.go
|
@ -123,7 +123,21 @@ func (col *Column) ValueOfV(dataStruct *reflect.Value) (*reflect.Value, error) {
|
|||
} else if len(col.fieldPath) == 2 {
|
||||
parentField := dataStruct.FieldByName(col.fieldPath[0])
|
||||
if parentField.IsValid() {
|
||||
if parentField.Kind() == reflect.Struct {
|
||||
fieldValue = parentField.FieldByName(col.fieldPath[1])
|
||||
} else if parentField.Kind() == reflect.Ptr {
|
||||
if parentField.IsNil() {
|
||||
parentField.Set(reflect.New(parentField.Type().Elem()))
|
||||
fieldValue = parentField.Elem().FieldByName(col.fieldPath[1])
|
||||
} else {
|
||||
parentField = parentField.Elem()
|
||||
if parentField.IsValid() {
|
||||
fieldValue = parentField.FieldByName(col.fieldPath[1])
|
||||
} else {
|
||||
err = fmt.Errorf("field %v is not valid", col.FieldName)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
err = fmt.Errorf("field %v is not valid", col.FieldName)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue