【问题标题】:Drupal 8 conditional syntaxDrupal 8 条件语法
【发布时间】:2017-10-13 16:55:39
【问题描述】:

我正在寻找带有 Drupal 8 条件显示链接的正确语法。我一直在阅读 twig 文档,与 PHP 模板时代相比,这是一个重大的飞跃,因此进展缓慢。我需要有条件地在视图的页脚中显示一个链接。

在过去,这很简单,即:

<?php global $user;?>
<?php if (user_access('administer nodes')):?>
<div class="foo"><a href="/">Shorthand link for admins</a></div>
<?php endif;?>

由于我不熟悉语法,因此很难在 Twig 中使用它。我是否需要以某种身份声明全局用户?从这里的链接Symfony 2: How do I check if a user is not logged in inside a template?,看来我需要做的就是:

{% if is_granted('ROLE_ADMIN') -%}
<div class="foo"><a href="/">Shorthand link for admins</a></div>
{% endif %}

但我在尝试提交时遇到错误。 ROLE_ADMIN 没有定义吗?我如何获得交响乐? (正确吗?)在 D8 安装中定义的角色?我不确定我做错了什么。任何帮助表示赞赏。

【问题讨论】:

  • 我还检查了此处链接中的语法drupal8notes.github.io/how-to-check-for-user-access-in-drupal-8,但不确定如何将其包含在视图页脚中。我正在测试的输入格式接受 PHP。
  • 你得到什么错误? Edit您的问题包括该详细信息
  • 我还依赖于您尝试修改的模板。您可能没有用户对象。

标签: drupal twig drupal-8


【解决方案1】:

如果您需要检查特定权限,请尝试

{% if user.hasPermission('administer nodes') %}
  <div class="foo"><a href="/">Shorthand link for admins</a></div>
{% endif %}

【讨论】:

    【解决方案2】:

    如果您尝试在 TWIG 文件中检查当前用户是否为管理员,您可以使用

    {% if is_admin %}
      <div class="foo"><a href="/">Shorthand link for admins</a></div>
    {% endif %}
    

    【讨论】:

      猜你喜欢
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多