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