gpt4 book ai didi

associations - 如何使用 Sequelize 的belongsToMany 关联?

转载 作者:行者123 更新时间:2023-12-04 01:44:22 25 4
gpt4 key购买 nike

我有项目和用户。

一个用户可以有多个项目。

一个项目可以有多个用户。

我尝试使用belongsToMany 关联对此进行建模。

在我的服务器上,我定义了这样的关联:

user.belongsToMany(project, {
through: 'writer_of_project'
foreign-key: 'user'
as: \projects
});

project.bbelongsToMany(user, {
through: 'writer_of_project'
foreign-key: 'project'
as: 'writers'
});

在我的客户端上,它看起来像这样:
user: {
id: 1,
...
projects: [1,2,3]
}

project: {
id: 1,
...
writers: [1,4,5]
}

在服务器上,关联需要第三个表来存储关联,而 Sequelize 似乎不允许我从中包含相应的模型。

如果我运行 project.find(1)include:[user]我得到

user is not associated with project!



如果我尝试将上面示例中的项目放入 update 方法中。 users 属性被简单地忽略了(我希望 project.setUsers(projectUpdate.users 在后台发生)。

处理这些关联的加载和更新的正确方法是什么?

最佳答案

当您为关联提供别名 ( as ) 时,您还需要将其提供给包含:

project.belongsToMany(user, {
through: 'writer_of_project'
foreign-key: 'project'
as: 'writers'
});

project.find({
where: { id: 1 },
include: [ { model: User, as: 'writers' } ]
});

或者您可以保存关联:
Project.writersAssociation = project.belongsToMany(user, {
through: 'writer_of_project'
foreign-key: 'project'
as: 'writers'
});

project.find({
where: { id: 1 },
include: [ project.writersAssociation ]
});

关于associations - 如何使用 Sequelize 的belongsToMany 关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29680359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com