вставить в объединенную таблицу "многие ко многим" - PullRequest
0 голосов
/ 08 мая 2020

как вы вставляете в объединенную таблицу, автоматически созданную sequelize? мои многие-ко-многим определены следующим образом:

db.users.belongsToMany(db.groups, {through: "users_groups", foreignKey:"user_id"});
db.groups.belongsToMany(db.users, {through: "users_groups",foreignKey:"group_id"});

Я попытался просто вставить прямо в users_groups с помощью create (), но это не позволило мне, я посмотрел на продолжение do c, и, похоже, я я должен использовать автоматически сгенерированные методы AddUser и AddGroup, дело в моем случае, я инициализировал базы данных в отдельных файлах, поэтому кажется, что sequelize не распознает их как методы? это то, что я пробовал, и журнал консоли сказал мне, что это не функции

  User.findByPk(req.body.userId)
    .then(user=>{
      Group.findByPk(req.body.groupId).then(group=>{
        User.addGroup(group);
      })
    })

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

решено, должно быть user.addGroup (группа), а не User.addGroup (группа)

0 голосов
/ 08 мая 2020

Предположим, вы хотите добавить много пользователей в группу. Вот как бы вы поступили.

Group.findByPK(req.body.userId)
  .then((group) => {
    group.addUsers([userId1, userId2])
   }).then((users) => console.log(users))
  .catch((error) => console.log(error));

Просто переверните, если вы хотите добавить пользователя в несколько групп.

Есть много других методов, доступных для проверки многих и многих экземпляров здесь .

Чтобы просто просмотреть доступные все методы в конкретном связанном экземпляре, отметьте здесь .

...