1
0
mirror of https://github.com/astaxie/beego.git synced 2024-10-31 23:00:55 +00:00

Merge pull request #3642 from GeorgeXc/fixBatchUpdate

Fix BatchUpdate not update the auto_now field
This commit is contained in:
astaxie 2019-05-18 09:28:22 +08:00 committed by GitHub
commit 804b9769e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -621,20 +621,31 @@ func (d *dbBase) Update(q dbQuerier, mi *modelInfo, ind reflect.Value, tz *time.
return 0, err
}
var find bool
var findAutoNowAdd, findAutoNow bool
var index int
for i, col := range setNames {
if mi.fields.GetByColumn(col).autoNowAdd {
index = i
find = true
findAutoNowAdd = true
}
if mi.fields.GetByColumn(col).autoNow {
findAutoNow = true
}
}
if find {
if findAutoNowAdd {
setNames = append(setNames[0:index], setNames[index+1:]...)
setValues = append(setValues[0:index], setValues[index+1:]...)
}
if !findAutoNow {
for col, info := range mi.fields.columns {
if info.autoNow {
setNames = append(setNames, col)
setValues = append(setValues, time.Now())
}
}
}
setValues = append(setValues, pkValue)
Q := d.ins.TableQuote()