这是我的大学模式

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)。

10-06 03:12