// Copyright GoFrame Author(https://goframe.org). All Rights Reserved. // // This Source Code Form is subject to the terms of the MIT License. // If a copy of the MIT was not distributed with this file, // You can obtain one at https://github.com/gogf/gf. package dm import ( "context" "time" "github.com/gogf/gf/v2/os/gtime" ) // ConvertValueForField converts value to the type of the record field. func (d *Driver) ConvertValueForField(ctx context.Context, fieldType string, fieldValue interface{}) (interface{}, error) { switch itemValue := fieldValue.(type) { // dm does not support time.Time, it so here converts it to time string that it supports. case time.Time: // If the time is zero, it then updates it to nil, // which will insert/update the value to database as "null". if itemValue.IsZero() { return nil, nil } return gtime.New(itemValue).String(), nil // dm does not support time.Time, it so here converts it to time string that it supports. case *time.Time: // If the time is zero, it then updates it to nil, // which will insert/update the value to database as "null". if itemValue == nil || itemValue.IsZero() { return nil, nil } return gtime.New(itemValue).String(), nil } return fieldValue, nil }