实际上问题本身是如何在一个模型的范围描述中从另一个模型调用范围?
我有这样的范围:
includeBookingSessionAndUsers: (userId) => ({
include: [
{
model: sequelize.model('BookingSession'),
where: {
[Op.or]: [
{ studentId: userId },
{ tutorId: userId },
],
}
},
],
}),
我需要从其中的另一个模型调用以下范围:
includeStudentAndTutor: () => ({
include: [
{
model: sequelize.model('User'),
as: 'tutor',
},
{
model: sequelize.model('User'),
as: 'student',
}
]
}),
因此结果与我只有一个带有嵌套包含的范围相同:
includeBookingSessionAndUsers: (userId) => ({
include: [
{
model: sequelize.model('BookingSession'),
where: {
[Op.or]: [
{ studentId: userId },
{ tutorId: userId },
],
},
include: [
{
model: sequelize.model('User'),
as: 'tutor',
},
{
model: sequelize.model('User'),
as: 'student',
}
]
},
],
})
问题最终得到解决。
这个范围保持不变。
请注意,它是针对模型描述的
BookingSession我们的第二个作用域(将在其中调用
includeStudentAndTutor)在模型中进行了描述Conversations,这里是它的工作描述它返回相同的结果,就好像这个范围没有使用范围
includeStudentAndTutor,而是简单地声明如下: