From 1999ef95c1cd8737c94750b5587b6ffcc490f968 Mon Sep 17 00:00:00 2001 From: John Date: Wed, 5 Feb 2020 22:06:24 +0800 Subject: [PATCH] fix issue in gconv.Struct* functions panic when converting attribute value is nil --- util/gconv/gconv_struct.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/util/gconv/gconv_struct.go b/util/gconv/gconv_struct.go index 49f90e4cf..eade34f9d 100644 --- a/util/gconv/gconv_struct.go +++ b/util/gconv/gconv_struct.go @@ -9,6 +9,7 @@ package gconv import ( "errors" "fmt" + "github.com/gogf/gf/internal/empty" "reflect" "regexp" "strings" @@ -223,7 +224,7 @@ func bindVarToStructAttr(elem reflect.Value, name string, value interface{}) (er err = bindVarToReflectValue(structFieldValue, value) } }() - if value == nil { + if empty.IsNil(value) { structFieldValue.Set(reflect.Zero(structFieldValue.Type())) } else { structFieldValue.Set(reflect.ValueOf(Convert(value, structFieldValue.Type().String()))) @@ -246,7 +247,7 @@ func bindVarToStructByIndex(elem reflect.Value, index int, value interface{}) (e err = bindVarToReflectValue(structFieldValue, value) } }() - if value == nil { + if empty.IsNil(value) { structFieldValue.Set(reflect.Zero(structFieldValue.Type())) } else { structFieldValue.Set(reflect.ValueOf(Convert(value, structFieldValue.Type().String())))