look up the Field.Name at Scope.SetColumn

This commit is contained in:
li3p 2015-04-16 14:08:13 +08:00
parent d61af54b96
commit 7966cde514
1 changed files with 8 additions and 3 deletions

View File

@ -158,13 +158,18 @@ func (scope *Scope) HasColumn(column string) bool {
func (scope *Scope) SetColumn(column interface{}, value interface{}) error { func (scope *Scope) SetColumn(column interface{}, value interface{}) error {
if field, ok := column.(*Field); ok { if field, ok := column.(*Field); ok {
return field.Set(value) return field.Set(value)
} else if dbName, ok := column.(string); ok { } else if name, ok := column.(string); ok {
if field, ok := scope.Fields()[name]; ok {
return field.Set(value)
}
dbName = ToDBName(name)
if field, ok := scope.Fields()[dbName]; ok { if field, ok := scope.Fields()[dbName]; ok {
return field.Set(value) return field.Set(value)
} }
dbName = ToDBName(dbName) if field, ok := scope.FieldByName(name); ok {
if field, ok := scope.Fields()[dbName]; ok {
return field.Set(value) return field.Set(value)
} }
} }