在我的模型中,User
,Program
到ProgramStaff
之间存在多对多关联:
user.js的:
module.exports = {
attributes: {
username: {
type: 'string',
required: true,
unique: true
},
programs: {
collection: 'Program',
via: 'program',
through: 'programstaff'
}
}
}
Program.js:
module.exports = {
attributes: {
name: {
type: 'string'
},
personnel:{
collection : 'User',
via: 'user',
through: 'programstaff'
}
}
}
ProgramStaff.js:
module.exports = {
attributes: {
program: {
model: 'Program'
},
user: {
model: 'User'
},
permissions: {
type: 'integer'
}
},
tableName: 'program_staff'
};
(我需要编程人员通过表来保存某种权限和基于用户程序,否则,我只是使用常规的多对多关联。)
我的问题是 - 我可以使用其余或快捷方式路线创建新的User' and associate with (existing)
程序吗?
我试图发送
user.programs = [programId]; // doesn't do anything (or error)
//or
user.programs = [{program: progamId}]; // creates new program even though I send valid id of existing program
//or
user.programs = [{program: { id: progamId}}]; // error
但似乎都没有创建ProgramStaff记录。
P.S。我知道我可以通过路由中的User.create
和嵌套ProgramStaff.create
调用,或创建然后更新休息/快捷方式调用,但我想知道"自动"这样做的方法。