javascript - 使用sequelize获取第三个模型的关联

标签 javascript model associations sequelize.js

我正在尝试使用sequelize来获取关联。

我这里有 3 个模型,其属性为:

学生 id、名称、类(class)等

学生详细信息 学生ID,科目ID

科目 ID,主题

我想获取学生的所有科目名称,但不想将信息直接存储在学生表中。有解决办法吗?

协会有:

模型/Student.js

classMethods: {
      associate: (models) => {
        Students.studentDetails = Students.hasOne(models.f_student_details, { foreignKey: { name: 'studentId', allowNull: false }, as: 'studentDetails' });
      }
}

模型/StudentDetails.js

classMethods: {
          associate: (models) => {
StudentDetails.belongsTo(models.subjects, { foreignKey: { name: 'subjectId', allowNull: true }, through: 'subjects' });

}

模型/Subjects.js

classMethods: {
          associate: (models) => {
Subjects.hasOne(models.student_details, { foreignKey: { name: 'subjectId', allowNull: false }, as: 'studentSubject' });
}

方法调用:

db.students.findAll({
include: [ model: db.students]
})

现在,它仅返回学生详细信息。我想通过学生对象中的学生详细信息来设置科目。只是为了弄清楚问题!

最佳答案

您应该像这样使用嵌套包含:

Students.findAll({
    include: {
          model: db.studentDetails,
          include: [ db.subjects ]
    }
});

但是,您需要从模型中删除“as”键,如下所示:

models/students.js

classMethods: {
      associate: (models) => {
        Students.studentDetails = Students.hasOne(models.f_student_details, { foreignKey: { name: 'studentId', allowNull: false } });
      }

模型/subjects.js

classMethods: {
          associate: (models) => {
Subjects.hasOne(models.student_details, { foreignKey: { name: 'subjectId', allowNull: false } });
}

}

模型/studentDetails.js

classMethods: {
          associate: (models) => {
StudentDetails.belongsTo(models.subjects, { foreignKey: { name: 'subjectId', allowNull: true } });

}

检查这个 stackoverflow post

关于javascript - 使用sequelize获取第三个模型的关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37962388/

相关文章:

范围输入的 JavaScript 位置问题

ruby-on-rails - Rails 角色模型默认(如果不存在)

javascript - 我可以在 ngView 中使用哪些属性来显示当前路由的模板?

Javascript - 如何读取文件

javascript - 嵌套的 HTML 列表项可以强制左对齐吗?

mysql - 按关联模型中的列对 Rails 数据库表进行排序

ruby-on-rails - 属于多个模型的模型的 CRUD 方法 Rails

javascript - 如何在 Three.js 中处理动画模型?

django - Django 模型中的必填字段不是强制性的?

associations - CakePHP 3 查找没有关联记录的记录 (hasMany)