正如评论部分@Alexis所指出的那样,这与S.O.上发布的here的另一个问题类似。答案指向水线核心内的well known issue(或特征?)。
我会打开这个问题,因为这个问题和上面提到的问题都不同,但依赖于相同的基础功能。
一旦在水线上可以获得完整的解决方案。
有没有办法在验证和beforeUpdate回调中传递条件?
用例场景是我想从条件中获取primaryKey值并根据该值查询数据库。
具体示例:我有2个表,作者和文章(一个作者有很多文章)。现在,我希望每个作者文章的title属性都是唯一的。
所以:
var author = {
name: "Sam Johnson",
id: 123
},
articles = [{
id: 1,
title: "title1",
owner: 123
}, {
id: 2,
title: "title2",
owner: 123
}];
现在,在更新第一篇文章的标题时,要检查它是否已经存在;
Article.update(1, {title: "title2"});
现在,我在文章模型中为title属性提供了一个自定义验证器,如下所示:
... // irrelevant
attributes: {
... // irrelevant
title: {
type: "string",
required: true,
uniqueTitle: function(cb) {
console.log(this) // {title: "newTitleValue"}
// so this is quite usless :(
cb();
}
}
},
beforeUpdate: [
function _checkTitle(values, cb) {
console.log(values) // same as above {title: "newTitleValue"}
console.log(this) // the model, with no criteria or primaryKey property set, which becomes useless :(
cb();
}
]
...
有关如何在这些挂钩中访问更新标准的任何想法? :(