From ba781ecbbdf3e7eda81aeab197920ebd39656ea2 Mon Sep 17 00:00:00 2001 From: akira_cn <19511344@qq.com> Date: Sat, 5 Dec 2015 00:47:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dupdate=E7=9A=84=E6=97=B6?= =?UTF-8?q?=E5=80=99=E5=9B=A0=E4=B8=BA=E8=AF=AF=E5=88=A0=E4=BA=86id?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=AF=BC=E8=87=B4=E4=B8=8D=E8=83=BD=E5=85=B3?= =?UTF-8?q?=E8=81=94=E6=9B=B4=E6=96=B0=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/model/base.js | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/model/base.js b/src/model/base.js index 2b350ba3..8798985d 100644 --- a/src/model/base.js +++ b/src/model/base.js @@ -276,18 +276,6 @@ export default class extends Base { options = await this.parseOptions(options); - //check where condition - if(think.isEmpty(options.where)){ - //get where condition from data - let pk = await this.getPk(); - if(data[pk]){ - options.where = {[pk]: data[pk]}; - delete data[pk]; - }else { - return think.reject(new Error(think.locale('MISS_WHERE_CONDITION'))); - } - } - //remove readonly field data this.readonlyFields.forEach(item => { delete data[item]; @@ -297,9 +285,21 @@ export default class extends Base { return think.reject(new Error(think.locale('DATA_EMPTY'))); } - data = this.parseData(data); - data = await this.beforeUpdate(data, options); - let rows = await this.db().update(data, options); + let parsedData = this.parseData(data); + //check where condition + if(think.isEmpty(options.where)){ + //get where condition from data + let pk = await this.getPk(); + if(parsedData[pk]){ + options.where = {[pk]: parsedData[pk]}; + delete parsedData[pk]; + }else { + return think.reject(new Error(think.locale('MISS_WHERE_CONDITION'))); + } + } + + parsedData = await this.beforeUpdate(parsedData, options); + let rows = await this.db().update(parsedData, options); await this.afterUpdate(data, options); return rows; }