fix: save reflect err
This commit is contained in:
parent
d9525d4da4
commit
2026177412
@ -41,4 +41,6 @@ var (
|
|||||||
ErrInvalidValueOfLength = errors.New("invalid association values, length doesn't match")
|
ErrInvalidValueOfLength = errors.New("invalid association values, length doesn't match")
|
||||||
// ErrPreloadNotAllowed preload is not allowed when count is used
|
// ErrPreloadNotAllowed preload is not allowed when count is used
|
||||||
ErrPreloadNotAllowed = errors.New("preload is not allowed when count is used")
|
ErrPreloadNotAllowed = errors.New("preload is not allowed when count is used")
|
||||||
|
// ErrReflect err Reflect
|
||||||
|
ErrReflect = errors.New("reflect err")
|
||||||
)
|
)
|
||||||
|
@ -75,7 +75,12 @@ func (db *DB) Save(value interface{}) (tx *DB) {
|
|||||||
|
|
||||||
reflectValue := reflect.Indirect(reflect.ValueOf(value))
|
reflectValue := reflect.Indirect(reflect.ValueOf(value))
|
||||||
for reflectValue.Kind() == reflect.Ptr || reflectValue.Kind() == reflect.Interface {
|
for reflectValue.Kind() == reflect.Ptr || reflectValue.Kind() == reflect.Interface {
|
||||||
reflectValue = reflect.Indirect(reflectValue)
|
reflectIndirect := reflect.Indirect(reflectValue)
|
||||||
|
if reflectValue == reflectIndirect {
|
||||||
|
tx.AddError(ErrReflect)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
reflectValue = reflectIndirect
|
||||||
}
|
}
|
||||||
|
|
||||||
switch reflectValue.Kind() {
|
switch reflectValue.Kind() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user