如何在 typeorm 查询中选择并输入传入数据字段中的所有角色名称(单独的列)作为数组

问题描述 投票:0回答:1

我有一个使用nestjs的typeorm库和一个mysql数据库,其中有一个表user、user_roles(多对多)和角色。我还有一个已经拥有 super_admin 角色的用户。

const users = await this.userRepository.find({
  relations: ['roles.role'],
});

以下回应:

[
    {
        "id": "1",
        "email": "[email protected]",
        "password": "Parol123",
        "created_at": "2024-07-17T10:10:49.000Z",
        "updated_at": "2024-07-17T10:10:49.000Z",
        "roles": [
            {
                "id": "1",
                "role": {
                    "id": "1",
                    "name": "super_admin",
                    "label": "Super Admin",
                    "description": "https://wordpress.org/documentation/article/roles-and-capabilities/"
                }
            }
        ]
    }
]

我需要更改传入的角色值,使其仅显示角色名称,例如:

roles: ["super_admin"]

我尝试使用查询生成器,但它对我来说也不起作用。

typescript nestjs typeorm
1个回答
0
投票

获得所需信息后,您可以使用

map
功能并自行格式化响应

const users = await this.userRepository.find({
  relations: ['roles.role'],
});
return users.map(user=>{
  return {
    ...user,
    roles: user.roles.map(role=>role.role.name)
  }
})
© www.soinside.com 2019 - 2024. All rights reserved.