Twig Drupal 8细枝用户ID?

Twig Drupal 8细枝用户ID?,twig,drupal-8,Twig,Drupal 8,我是Drupal&Twig新手,我只需要在我的自定义主题中使用一个Twig表达式来输出当前用户的ID。我在模板注释中找不到任何内容,只有在用户登录了true/false的情况下 有没有一种简单的方法来获取当前用户的ID?我不知道如何在主题中实现自定义方法 谢谢 以下是D8现在的工作原理,包含两行可执行代码: <?php // This code returns the current user ID. $account = \Drupal::currentUser(); return $a

我是Drupal&Twig新手,我只需要在我的自定义主题中使用一个Twig表达式来输出当前用户的ID。我在模板注释中找不到任何内容,只有在用户登录了true/false的情况下

有没有一种简单的方法来获取当前用户的ID?我不知道如何在主题中实现自定义方法


谢谢

以下是D8现在的工作原理,包含两行可执行代码:

<?php
// This code returns the current user ID.
$account = \Drupal::currentUser();
return $account->id(); 

以下是D8的工作原理,由两行可执行代码组成:

<?php
// This code returns the current user ID.
$account = \Drupal::currentUser();
return $account->id(); 

在主题中找到文件yourthemename.theme并添加以下代码:

function yourthemename_preprocess(&$vars, $hook)
{
  $vars['uid'] = \Drupal::currentUser()->id();
}

现在,如果您为html、页面、区域、块、字段、表单元素编辑细枝模板。。。您可以在您的小枝中使用'uid'标记。它适用于主题中的所有挂钩,找到文件yourthemename.theme并添加以下代码:

function yourthemename_preprocess(&$vars, $hook)
{
  $vars['uid'] = \Drupal::currentUser()->id();
}
现在,如果您为html、页面、区域、块、字段、表单元素编辑细枝模板。。。您可以在您的小枝中使用'uid'标记。它适用于所有挂钩

您好

我建议您使用该模块。
Bambol Twig模块提供了一些Twig扩展,其中包含一些有用的函数和过滤器,旨在改善开发体验

然后,您可以启用子模块
竹枝装载机

drush en bamboo_twig_loader -y
最后,您将能够使用细枝功能
bambol\u load\u currentuser

<!-- Get Current User -->
{% set user = bamboo_load_currentuser() %}
<div>{{ user.name.value }}</div>
<div>{{ user.uid.value }}</div>

{%set user=BACKBOUN\U load\U currentuser()%}
{{user.name.value}
{{user.uid.value}
您可以找到。

您好

我建议您使用该模块。
Bambol Twig模块提供了一些Twig扩展,其中包含一些有用的函数和过滤器,旨在改善开发体验

然后,您可以启用子模块
竹枝装载机

drush en bamboo_twig_loader -y
最后,您将能够使用细枝功能
bambol\u load\u currentuser

<!-- Get Current User -->
{% set user = bamboo_load_currentuser() %}
<div>{{ user.name.value }}</div>
<div>{{ user.uid.value }}</div>

{%set user=BACKBOUN\U load\U currentuser()%}
{{user.name.value}
{{user.uid.value}

您可以找到。

显示名称不是您可以在{{content}中配置的字段。您可以直接从用户实体获取:

{{ user.displayname }}

php方法的参考:AccountInterface::getDisplayName

显示名称不是可以在{{content}中配置的字段。您可以直接从用户实体获取:

{{ user.displayname }}

php方法的参考:AccountInterface::getDisplayName

如果您只需要user.html.twig中的ID,那么它就是
{{user.ID}

如果您只需要user.html.twig中的ID,那么它就是
{user.ID}

它非常“危险”并且“耗时/性能”因为您将为每个模板文件的细枝文件设置
uid
值(并且您可能不需要在任何地方都使用它)。此外,您可能会遇到缓存问题。我不确定我会推荐这种方法,因为它会影响整个网站。凯文:为什么它是危险的?为什么这么费时?为什么我有缓存问题?它是向函数传递变量的过程。没别的了。每个使用drupal的人都知道如何使用预处理挂钩,以及如何使用它来预处理特定元素。耗时的挂钩对性能不是很好(尤其是每个模板上出现的主题预处理)。危险的是,在每个模板中都会有一个很短很常见的命名为uid的变量。缓存问题取决于缓存标记/上下文和策略,用户不会重新解释预处理(因此uid值将不正确)。如果您愿意(@wengerk),我很乐意在Drupal Slack中讨论这一切。这非常“危险”和“耗时/性能”,因为您将为每个模板文件的细枝文件设置
uid
值(您可能不需要在任何地方都使用它)。此外,您可能会遇到缓存问题。我不确定我会推荐这种方法,因为它会影响整个网站。凯文:为什么它是危险的?为什么这么费时?为什么我有缓存问题?它是向函数传递变量的过程。没别的了。每个使用drupal的人都知道如何使用预处理挂钩,以及如何使用它来预处理特定元素。耗时的挂钩对性能不是很好(尤其是每个模板上出现的主题预处理)。危险的是,在每个模板中都会有一个很短很常见的命名为uid的变量。缓存问题取决于缓存标记/上下文和策略,用户不会重新解释预处理(因此uid值将不正确)。如果你愿意(@wengerk),我很乐意在Drupal Slack中讨论这一切。