в Loopback, как мы можем найти связанные данные в хуке до сохранения модели? - PullRequest
0 голосов
/ 22 января 2020

У меня есть таблица user и userGroups, и между userGroups и пользователем существует отношение hasAndBelongsToMany. Если я обновлю группу пользователей, добавив в нее еще одного пользователя, то я хочу сравнить и выяснить нового пользователя, добавленного в сохраненном до

module.exports = function (UserGroup, Model) {
  UserGroup.observe('before save', async function (ctx, next) {
    const userData = await UserGroup.find({
      filter: {
        where: {
          id: ctx.currentInstance.id
        }
      },
      include: {
        relation: 'users',
        scope: {
          include: ['userGroups']
        }
      },
      limit: 1
    })

    console.log(userData)
    return next()
  })
}

UserData включает в себя недавно пропатченного пользователя, тогда как он должен просто отображать пользователи, которые были в группе до

1 Ответ

0 голосов
/ 03 февраля 2020

Это можно исправить с помощью отношения hasManyThrough (https://loopback.io/doc/en/lb3/HasManyThrough-relations.html)

Создание новой таблицы Членство и добавление хуков, которые перехватывают каждый раз, когда в userGroup добавляется новый пользователь.

Новое членство создается при добавлении пользователя в группу пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...