0
私はユーザーとグループの間に多対多の関係を持っています。ユーザーには多数のグループがあり、グループには多数のユーザーがいます。ソースとアソシエーションの両方で行を作成する多くのモデルから多くのモデルを続ける
私はusersテーブル、usersGroupsというグループテーブルとジャンクションテーブルを持っています。
マイUserモデル
:'use strict';
module.exports = function(sequelize, DataTypes) {
var User = sequelize.define('User', {
firstName: DataTypes.STRING,
lastName: DataTypes.STRING,
email: DataTypes.STRING,
username: DataTypes.STRING,
facebookId: DataTypes.STRING,
password: DataTypes.STRING,
}, {
classMethods: {
associate: function(models) {
User.hasMany(models.Payment);
User.hasMany(models.Friend, {foreignKey: 'userIdLink1', allowNull: false});
User.belongsToMany(models.Group, { as: 'Groups', through: 'usersGroups', foreignKey: 'userId' });
}
},
instanceMethods: {
toJSON: function() {
var values = Object.assign({}, this.get());
delete values.password;
return values;
}
}
});
return User;
};
マイグループモデルが
'use strict';
module.exports = function(sequelize, DataTypes) {
var Group = sequelize.define('Group', {
}, {
classMethods: {
associate: function(models) {
// associations can be defined here
Group.belongsToMany(models.User, { as: 'Users', through: 'usersGroups', foreignKey: 'groupId' });
}
},
instanceMethods: {
toJSON: function() {
var values = Object.assign({}, this.get());
delete values.password;
return values;
}
}
});
return Group;
};
私は、次の2つの方法と関連したユーザーと新しいグループを作成しようと、それは新しいグループを作成しますが、関連がない
const values = {
userId: 1
}
const options = {
include: db.Users
}
db.Group
.create(values, options)
.then((group) => {
res.send(group)
}).catch(err => {
res.status(500).send({err: err})
})
または
あなたは、単に新たに作成したグループにユーザーを割り当てる場合db.Group
.create()
.then((group) => {
group.addUser({ userId: 1 }).then(result => {
res.send(result)
}).catch(err => {
res.status(500).send({err: err})
})
}).catch(err => {
res.status(500).send({err: err})
})
申し訳ありませんが私は十分な私のポストではなかったが、私は新しいユーザーを作成したくない、私は新しいgroupIdと私が渡す既存のuserIdを参照するusersGroups接合テーブルのエントリを作成したい – Stretch0
私はちょうど、アソシエーションを使ってモデルを作成することについて簡単に説明するつもりだと思っていましたが、私はあなたのケースも含めました - ユーザーをグループに割り当てました。私は答えを編集したので、この部分だけが残っています。 – piotrbienias
ありがとう@piotrbienias、その作品 – Stretch0