Symfony 2 - 在树枝模板中访问分层角色

时间:2012-04-21 04:08:28

标签: php symfony roles twig

在我的模板中,我需要知道用户是否具有根据它显示事物的某些角色。到目前为止,我已经在我的用户类中实现了一个小函数:

  public function hasRole($role) {
    $roles = array();
    foreach ($this->getRoles() as $rol) {
      $roles[] = $rol->getRole();
    }
    return in_array($role, $roles);
  }

告诉我此用户是否具有作为参数传递的字符串指定的角色。这项工作可以从twig模板调用,但不允许我了解角色层次结构。有没有办法从控制器访问角色层次结构?并直接从树枝模板?我查看过官方文档并没有找到任何相关内容。

1 个答案:

答案 0 :(得分:19)

您可以使用下面的代码检查twig模板中的角色,它解释了如果当前用户具有以下角色,那么显示某些内容

{% if is_granted('ROLE_ADMIN') %}

  //show things related to admin role

{%else if is_granted('ROLE_USER')%}
//show things related to user role
{% endif %}

希望这会对你有所帮助。 快乐编码!!