我与这样的联想有三种关系:
User.belongsToMany(Course, { as: 'courses', through: CourseUser, foreignKey: 'userId' });
Course.belongsToMany(User, { as: 'users', through: CourseUser, foreignKey: 'courseId' });
CourseRole.belongsToMany(User, { as: 'users', through: CourseUser, foreignKey: 'roleId' });
User.belongsToMany(CourseRole, { as: 'course_roles', through: CourseUser, foreignKey: 'userId' });
我正在尝试进行嵌套包含,以查找课程中的所有用户及其角色。
const course = await Course.findOne({
where: { id: courseId },
include: [{ model: CourseUser, as: 'organization_users' }, { model: CourseRole, as: 'course_roles' }]
});
但是它不起作用,我做了很多研究,但是也许没有办法在续集中进行这种包含?
答案 0 :(得分:1)
在加载课程时,查找包含用户包含课程在内的角色时,请尝试使用必填:true 。
const roles = await CourseRole.findAll({
include: [
{
model: User,
as: 'users',
include:[{
model: Course,
as: 'courses',
where: {id: courseId},
required: true
}]
}
],
});