Symfony2:始终向TWIG返回一个变量


  • 我创建了一个User实体,它实现了UserInterface。一切都还好
  • 我创建了两个辅助表,用于管理角色和权限(每个角色都有一些权限)

所以,我的实体是:

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

角色->只是角色的名称

权限->仅权限的名称

RolePermission->创建角色和权限之间的关系。

我需要做的是获得当前登录用户的权限:如何做到这一点?首先查找用户的角色,然后在RolePermission中查找具有哪些权限。

这是可以的,但一旦我有了这个权限,我需要把它发送到TWIG。

我可以手动做到这一点,在应用程序的每个$this->render上发送一个数组这些权限,但我认为这不是最好的解决方案(懒惰…)

每次我渲染TWIG模板时,是否可以发送这个数据(一个有权限的数组)?怎样

编辑:

这个问题是关于获取与登录用户相关的信息,但不是关于检查TWIG(is_granted)中的角色

假设有这样的数据库模式。。。

[table User] --ManyToOne--> [table Role] --OneToMany--> [table Permission] 

您可以尝试以下操作:

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

在Twig中,使用is_granted()函数检查当前用户是否具有特定角色:

{% 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 %}

经过大量研究,由于我的需要,我最终返回并在每个->render中使用权限数组

相关内容

  • 没有找到相关文章

最新更新