在Symfony5
安全性中,角色是纯字串。因此,User
实体通常会有一个$roles
数组来储存角色名称字串,例如:
class User {
/** @ORM\Column(type="json") */
protected array $roles = ['ROLE_USER'];
// ...
}
但是,在我的环境中,我希望使用描述和其他 meta数据丰富角色,因此我有一个Role
类,我希望能够使用api-platform
框架为单个用户**获取角色列表(注意:获取角色集合不是问题,可以立即完成)*。
1条答案
按热度按时间y53ybaqx1#
这可以通过在Api-Platform中定义一个自定义的子资源DataProvider来实现。我不知道如何解决这个问题)*。
1.在User::$roles属性上定义
@ApiSubresource
:1.创建您的DataProvider。这是我使用的,但可以使用一些改进,使其更通用。
1.配置服务
1.您现在可以调用您的路由:
path('api_users_roles_get_subresource', {id: user.id})
我花了一点时间才弄明白这一点,所以我希望这对某些人有帮助。