我是Sails / WaterLine ORM的新手 我跟随http://sailsjs.org/documentation/concepts/models-and-orm/associations/through-associations
一个问题。
如何将数据插入连接表?
例如:用户m - m宠物
用户模型
module.exports = {
attributes: {
name: {
type: 'string'
},
pets:{
collection: 'pet',
via: 'owner',
through: 'petuser'
}
}
宠物模型
module.exports = {
attributes: {
name: {
type: 'string'
},
color: {
type: 'string'
},
owners:{
collection: 'user',
via: 'pet',
through: 'petuser'
}
}
PetUser模型(连接表)
module.exports = {
attributes: {
owner:{
model:'user'
},
pet: {
model: 'pet'
}
}
}
宠物数据可用(某些记录包含ID1,ID2,ID3 ......)
我想添加一个宠物的新用户
PetUser(id,id_of_user,id_of_pet)
1,U1,P1
2,U1,P2
{
"name" : "John",
"pets" : [2,3]
}
UserController
module.exports = {
addUserWithPets: function(req, res) {
User.create(req.body).exec(function(err, user) {
if(err){
throw err;
}else {
/*pets.forEach(function(pet, index){
user.pets.add(pet);
})
user.save(function(err) {});*/
user.pets.add(data);
user.save(function(err) {});
}
return res.ok({
data: user
});
})
}
};
谢谢!
答案 0 :(得分:1)
我认为这还没有在帆中实施。
请参阅此问题:through associations in sails.js。
以下是waterline docs的说法:
多对多通过关联的行为与多对多关联的行为方式相同,但自动为您创建的连接表除外。这允许您将其他属性附加到连接表内的关系。
即将推出