根据参数Sails.js创build一个所需的属性

我有一个有两个属性的模型。 一个叫userType ,一个叫lastName

基本上我想要做的是:如果userType是professor那么lastName应该是必需的。

 userType: { type: 'string', required: true, enum: ['professor', 'administrator'] }, lastName: { type: 'string', required: function() { return this.userType === 'professor'; } }, 

为什么我不能通过必要的function? 在水线文档中甚至有一个containsvalidation的例子。

如果不可能的话,有没有其他办法可以做到这一点? 我不想在控制器上创build自定义validation,我想把所有东西都留给模型。 也许甚至使用beforeValidatecallback。

谢谢

根据sails文档http://sailsjs.org/documentation/concepts/models-and-orm/validations
你可以做出自己的validation,例如:

 module.exports = { types: { isProfessor: function(lastName){ return (this.userType === 'professor' && !lastName)? false: true; } }, attributes:{ userType: { type: 'string', required: true, enum: ['professor', 'administrator'] }, lastName: { type: 'string', isProfessor: true } } }