Ассоциации: множественное hasMany и относится к реализации - PullRequest
0 голосов
/ 09 июня 2019

поэтому у меня три модели:

Книга , Отзыв и Пользователь .Я хочу, чтобы ассоциации были такими, чтобы:

Пользователь имел много Отзыв

Книга имеет много Отзыв

делает это следующим образом:

Book.hasMany(Review);
Review.belongsTo(Book);

User.hasMany(Review);
Review.belongsTo(User);

не работает, выдает эту ошибку: Конфликт имен между атрибутом «пользователь» и ассоциацией «пользователь» при просмотре модели.Чтобы исправить это, измените ForeignKey или как в определении вашей ассоциации

, что я могу сделать или где я могу прочитать об этом?Спасибо еще!

Ответы [ 2 ]

1 голос
/ 09 июня 2019

Вы можете просто указать псевдоним для внешнего ключа пользователя в обзоре модели следующим образом:

Review.belongsTo(User, {foreignKey: 'owner_user_id'}); 

Это все упомянуто на странице документации по связыванию: http://docs.sequelizejs.com/manual/associations.html

1 голос
/ 09 июня 2019

Сначала у вас должен быть экземпляр вашей модели, а затем использовать что-то вроде этого кода:

  Review.associate = (models) => {
    models.Review.belongsTo(models.Book, {
      foreignKey: 'bookId',
      targetKey: 'id'
    })
  }


И вы можете добавить, сколько ассоциаций вы хотите с чем-то вроде этого кода

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