这是我的大学模式
module.exports = {
attributes: {
name:{
type:'string',
required:true
},
location:{
type:'string',
required:true
},
faculties:{
collection:'faculty',
via:'college'
}
}
};
这是我的教师模式
module.exports = {
attributes: {
name:{
type:'string',
required:true
},
description:{
type:'string'
},
college:{
model:'college',
required:true
}
,
years:{
collection:'year',
via:'faculty'
}
}
};
我的问题是我可以在
Faculty
属性中添加任何值的新college
。如果我没有3000 ID的大学,我仍然可以添加它,但是当我列出所有学院时,college
属性将不会显示。如何防止其添加具有无效大学ID的教师? 最佳答案
当前,水线无法以您描述的方式创建外键约束。它仅创建关联的字段。
您可以使用其他库来代替Waterline,例如Sequelize.js,这里是有关如何执行此操作的链接
https://groups.google.com/forum/#!topic/sailsjs/ALMxbKfnCIo
如果您使用的是SQL数据库,则可以手动创建外键约束。
或者,您可以通过在教师模型中 checkin beforeValidate()
或afterValidate()
来验证在大学模型中设置大学之前的值(value)。