Php Symfony2:始终向TWIG返回一个变量 我已经创建了一个用户实体,它实现了UserInterface。一切都好 我已经创建了两个辅助表,管理角色和权限(每个角色都有一些权限)

Php Symfony2:始终向TWIG返回一个变量 我已经创建了一个用户实体,它实现了UserInterface。一切都好 我已经创建了两个辅助表,管理角色和权限(每个角色都有一些权限),php,symfony,doctrine-orm,twig,Php,Symfony,Doctrine Orm,Twig,因此,我的实体是: 用户有一个角色(一个角色,这个角色来自--->) 角色->角色名称 权限->权限的名称 角色权限创建角色和权限之间的关系 我需要做的是获取当前登录用户拥有的权限:如何执行此操作?首先查找用户的角色,并在RolePermission中查找具有哪些权限 这是可以的,但一旦我有了这个权限,我需要将它发送到细枝 我可以手动执行此操作,在应用程序的每个$this->render上发送这些权限的数组,但我认为这不是最好的解决方案(lazy…) 每次我呈现一个细枝模板时,是否可以发送此数据

因此,我的实体是:

用户有一个角色(一个角色,这个角色来自--->)

角色->角色名称

权限->权限的名称

角色权限创建角色和权限之间的关系

我需要做的是获取当前登录用户拥有的权限:如何执行此操作?首先查找用户的角色,并在RolePermission中查找具有哪些权限

这是可以的,但一旦我有了这个权限,我需要将它发送到细枝

我可以手动执行此操作,在应用程序的每个
$this->render
上发送这些权限的数组,但我认为这不是最好的解决方案(lazy…)

每次我呈现一个细枝模板时,是否可以发送此数据(具有权限的数组)?怎么做

编辑:


此问题是关于获取与已登录用户关联的信息,但不是要检查TWIG中的角色(已授予)

在TWIG中,使用该功能检查当前用户是否具有特定角色:

{% if is_granted('ROLE_ADMIN') %}
    {# output stuff for an admin #}
{% endif %}

如果要获取当前用户的角色,请执行以下操作:

{% for role in app.user.roles %}
    {# do what you want with the role #}
{% endif %}

假设像这样的数据库模式

[table User] --ManyToOne--> [table Role] --OneToMany--> [table Permission] 
…您可以尝试以下操作:

{% for permission in app.user.role.permissions %}
    {{ permission.name }}
{% endfor %}

经过大量的研究,由于我的需要,我最终返回并在每个
->渲染中使用权限进行数组,正如我所说的,我不需要这个。我已经知道如何获取检查twig中的角色…此问题是关于获取与已登录用户相关联的信息(具有权限的数组,其中权限是另一个实体),但不准备检查twig中的角色(是否已授予)否,我已再次编辑此问题。更清楚吗?谢谢你的帮助;=)这似乎是解决办法。我会检查,然后回来批准:)