我想为树枝模板提供登录的用户名。所以我需要将它作为变量传递给模板。 任何帮助将非常感激。
我尝试过使用hook_theme_registry_alter方法,但它不起作用。
答案 0 :(得分:0)
使用HOOK函数hook_preprocess_page 如果您在主题中编写代码,请将此代码写入.theme文件 如果在模块中然后在.module文件
function themename_preprocess_page(&$variables) {
global $user;// current user object
$variables['customUserName'] = $user->getUsername();
}
如果在模块中,则将名称更改为主题名称,然后替换为模块名称
在你的树枝模板中,你将像这样打印这个变量
{{ customUserName }}
我们正在覆盖页面模板,因此您可以在所有页面模板中获取此变量 如果在节点模板中需要此变量,则将函数重命名为
function themename_preprocess_node(){}
希望这符合您的要求 致谢
答案 1 :(得分:0)
Code.rider的答案是正确的,但在Drupal 8中最好使用\ Drupal :: currentUser()来获取当前用户。这是mytheme.theme的代码:
function mytheme_preprocess_page(&$variables) {
$user = \Drupal::currentUser();
if($user)
{
$username = \Drupal\user\Entity\User::load($user->id());
$variables['username'] = $username->getUsername();
}
return $variables;
}