目前我有两个表(users、roles)和一个关联表(urs),多对多关系
我想在新增用户(user)的同时时同时关联 1-N 个角色(role)
koa2 路由代码如下:
router.post('/register', async ctx => {
const user = await User.create(ctx.request.body, {
include: [Role]
})
ctx.body = success(user, '注册成功')
})
请求代码如下:
### register
POST http://localhost:3000/api/user/register
Content-Type: application/json
{
"username": "admin",
"password": "e10adc3949ba59abbe56e057f20f883e",
"avatar": "https://oyal.oss-cn-beijing.aliyuncs.com/img/202205031254907.jpg",
"role": 0,
"nickname": "admin",
"roles": [
{
"name": "超级管理员"
},
{
"name": "管理员"
}
]
}
roles 表中的 name 是唯一值。如果请求中的 name 值都不存在于 roles 表数据中,可以正常创建用户和相应的角色、关联表数据,如果已经存在会报错。Duplicate entry '超级管理员' for key 'name'
我的想法是如果请求中的 name 值不存在,则新增 role 相应数据并且关联到新增的用户,已经存在的直接关联到相应的 roleId
这种想法要怎么实现呢?目前还没有好的实现思路
经过多方查询得知,建立关联后 User 会自动添加 addRoles、getRoles、setRoles 方法,官方文档并没有找到对这些方法的描述,嘤~