fixed:panic when create value from nil struct pointer.

This commit is contained in:
kinggo 2021-10-12 21:04:47 +08:00
parent 9419d5b114
commit c5db44d03f
2 changed files with 4 additions and 6 deletions

View File

@ -78,12 +78,10 @@ func Parse(dest interface{}, cacheStore *sync.Map, namer Namer) (*Schema, error)
}
value := reflect.ValueOf(dest)
var modelType reflect.Type
if value.IsZero() {
modelType = value.Type()
} else {
modelType = reflect.Indirect(value).Type()
if value.Kind() == reflect.Ptr && value.IsNil() {
value = reflect.New(value.Type().Elem())
}
modelType := reflect.Indirect(value).Type()
if modelType.Kind() == reflect.Interface {
modelType = reflect.Indirect(reflect.ValueOf(dest)).Elem().Type()

View File

@ -518,7 +518,7 @@ func TestCreateFromSubQuery(t *testing.T) {
}
}
func TestNilPointer(t *testing.T) {
func TestCreateNilPointer(t *testing.T) {
var user *User
err := DB.Create(user).Error