首页 文章

Sails / WaterLine ORM /有很多通过:将数据插入连接表

提问于
浏览
0

我是Sails / WaterLine ORM的新手
我正在关注http://sailsjs.org/documentation/concepts/models-and-orm/associations/through-associations

一个问题 .
如何将数据插入连接表?
例如: User m - m Pet

用户模型

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
        });

    })
  } 
};

谢谢!

1 回答

  • 1

    我认为这还没有在帆中实施 .

    请参阅此问题:through associations in sails.js在SO上 .

    这是waterline docs所说的:

    多对多关联的行为与多对多关联的行为方式相同,但自动为您创建的连接表除外 . 这允许您将其他属性附加到连接表内的关系 . 快来了

相关问题