【问题标题】:Sails.js How to insert data into a join table (Many to Many)Sails.js 如何将数据插入连接表(多对多)
【发布时间】:2015-06-06 09:51:49
【问题描述】:

我在将数据插入连接表时出错,我不知道我是否以正确的方式进行操作。 这是我的 2 个具有多对多关联的模型。

提交.js:

module.exports = {
  schema: true,
  attributes: {
    idCommit : {
      type: 'integer',
      autoIncrement: true,
      primaryKey: true,
      unique: true
    },
    revision : {
    type: 'integer',
    required: true
    },
    issues: {
      collection: 'issue',
      via: 'commits',
      dominant: true
    }
  }
};

问题.js:

module.exports = {
  schema: true,
  attributes: {
    idIssue : {
      type: 'integer',
      autoIncrement: true,
      primaryKey: true,
      unique: true
    },
    description: {
    type: 'string',
    required: true
    },
    commits: {
      collection: 'commit',
      via: 'issues'
    }
  }
};

当我尝试以这种方式将问题插入提交时:

Commit.create(commit).exec(function(err,created){
  if (err) {
    console.log(err);
  }
  else { 
    created.issues.add(issues);
    created.save(function(err) {});
  }
});

我的提交已创建,我的问题已创建,但它们之间没有任何链接,并且连接表保持为空。我哪里弄错了?

【问题讨论】:

  • 您使用的是哪个适配器?
  • sails gitter 房间也是获得帮助的好地方:gitter.im/balderdashy/sails
  • 我正在使用 mySql 适配器。

标签: node.js orm sails.js waterline


【解决方案1】:

从您的代码看来,您正在尝试添加一系列问题,请尝试单独进行关联,就像他们在 Many-to-Many docs 中所做的那样

Commit.create(commit).exec(function(err,created){
  if (err) {
    console.log(err);
  }
  else { 

    issues.forEach(function(issue, index){
        created.issues.add(issue);
    })

    created.save(function(err) {});
  }
});

【讨论】:

  • 您可以通过使用来简化:created.add(issues);。是的,它处理数组。
猜你喜欢
  • 1970-01-01
  • 2016-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多