我有一个用户模型和一个课程模型,它们之间存在多对多的关系,因此基本上用户可以加入多个课程,而课程也有许多用户(学生)。我有一个连接表,并且正在尝试向连接表添加其他信息。基本上,用户每月可以在每门课程中提出一定数量的问题。因此,我已将一个配额列添加到User_Course连接表中。我无法访问配额列。以下是相关代码,以便了解。
var User = DB.Model.extend({
Courses: function() {
return this.belongsToMany('Course', 'User_Course', 'userId', 'courseId');
},
});
var Course = DB.Model.extend({
Users: function() {
return this.belongsToMany('User', 'User_Course', 'courseId', 'userId');
}
})
而 User_Course 是我的连接表,它还有一个额外的配额列:
**User_Course:**
userId: int
courseId: int
quota: int
我希望能够减少我的配额值。我可以使用updatePivot来更新它,但我无法获取当前配额值。这是我用来更新值的代码:
var userPromise = new User.User({userId: userId}).fetch({withRelated: ['Courses']});
userPromise.then(function(_user) {
_user.related('enrolledCourses').updatePivot({courseId:courseId, quota:1}).then(function() {
return;
})
})
正如您所看到的,我在这里每次都将配额值更新为1。我想以编程方式确定当前的配额值,然后对其进行递减。
return this.belongsToMany('Course', 'User_Course', 'userId', 'courseId').withPivot(['quota'])
,但我认为这试图给我返回与用户相关的所有课程,而我想要返回给定课程ID和用户ID中配额列中的数字。 - kaustubhb