回答:
{{ user.name.0.value }}
あなたが望むものをあなたに与えるはずです。
推奨される方法は、ユーザー名をプリプロセス関数の変数として挿入することです。これを行うには、テーマの.themeファイルを調整します
<?php
/**
* Implements hook_preprocess_user().
*/
function yourtheme_preprocess_user(&$variables) {
/** @var User $account */
$account = $variables['elements']['#user'];
$variables['username'] = $account->getDisplayName();
}
次に、ユーザーテンプレートでそれをとして使用できます{{ username }}。
編集:
完全なURLを取得するには:
{{ path('entity.user.canonical', {'user': user.id}, {}) }}$variables['user_url'] = Url::fromRoute('entity.user.canonical', ['user' => $account->id()])->setAbsolute()->toString();表示名は、で構成できるフィールドではありません{{ content }}。ユーザーエンティティから直接取得できます。
{{ user.displayname }}
phpメソッドのリファレンス:AccountInterface :: getDisplayName
この回答は、特にmenu.html.twigでユーザー名を取得するためのものです
マクロを通じてユーザー名を渡すという解決策は私にとってうまくいきました。変数を設定してマクロに渡す必要があります。これらはmenu.html.twigのマクロのスコープ外であるためです。
{% set username = user.account.name %}
{{ menus.menu_links(items, attributes, 0,logged_in,username) }}
{% macro menu_links(items, attributes, menu_level,logged_in,username) %}
{{ username }}
{% endmacro %}
hook_user_format_name()後者は、サイトがユーザー名に必要とする可能性のあるあらゆることを実行するように実行されるので推奨されます。