web-dev-qa-db-ja.com

twig変数としてログインユーザーのユーザー名を取得します

現在ログインしているユーザーのユーザー名を変数として取得して、twigテンプレートで使用する方法はありますか?

4
cheesetriple

特定のものをターゲットにする必要があります。すべてのtwigテンプレートはキャッシュのために不可能です。多くのページ要素はすべてのリクエストで再構築されず、間違ったユーザーを表示します。

また、すべての要素からキャッシュを削除しようとすると、サイトが非常に遅くなります。

これを特定のtwigテンプレートに追加すると、このレンダリング要素のキャッシュコンテキストを調整できます。

function MYTHEME_preprocess_HOOK(&$variables) {
  $variables['currentusername'] = \Drupal::currentUser()->getUsername();
  $variables['#cache']['contexts'][] = 'user';
}

HOOKはテンプレートタイプです。

7
4k4