gpt4 book ai didi

sequelize.js - 如果关系使用 "as",则属性与模型无关

转载 作者:行者123 更新时间:2023-12-03 22:23:50 24 4
gpt4 key购买 nike

数据库:mysql 5.5

Sequelize 版本:3.30.4

用户角色模型

sequelize.define('userRole', {
uid: {
type: DataTypes.UUID,
primaryKey: true
},
name: {
type: DataTypes.STRING,
unique: true
}
},
{
freezeTableName: false,
tableName: 'user_roles'
}
)

用户模型
sequelize.define('user', {
uid: {
type: DataTypes.UUID,
primaryKey: true
},
login: {
type: DataTypes.STRING,
unique: true,
allowNull: false
}
},
{
freezeTableName: false,
tableName: 'users'
}
)

和关系
Users.belongsTo(UserRoles, { as: 'role' })

尝试插入新用户
Users.create({
uid: uuid(),
login: 'login',
password: 'password',
role: {
uid: uuid(),
name: 'admin'
}
}, {
include: [Types.UserRoles]
})

Error: userRole is not associated to user!



尝试使用
role: {
uid: uuid(),
name: 'admin'
}

或者
userRole: {
uid: uuid(),
name: 'admin'
}

但没有区别

如果我改变关系
Users.belongsTo(UserRoles)

一切皆好

最佳答案

使用 as 选项定义关系时,您需要记住在执行预先加载这些关系的查询时包含别名,因此您需要更改 create() 并在 as 中添加 include 选项:

Users.create({
uid: uuid(),
login: 'login',
password: 'password',
role: {
uid: uuid(),
name: 'admin'
}
}, {
include: [{ model: Types.UserRoles, as: 'role' }]
});

关于sequelize.js - 如果关系使用 "as",则属性与模型无关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43382672/

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