web-dev-qa-db-ja.com

page.html.twigのユーザーフィールド値を印刷するにはどうすればよいですか?

Drupal 8の例:名:)でユーザー用にいくつかのフィールドを作成しました。それをホームページ(page.html.twig)に印刷しようとしていますが、私は次のことを試しました:

{{ user.field_first_name.0['#context']['value'] }}
{{ user.field_first_name.0.value }}                     
{{ user.field_first_name }} 

Mytheme.themeに前処理関数を追加してみましたが、それでも機能しませんでした。

以下が機能することに注意してください

{{ user.displayname }}

与えられた助けに感謝し、

ありがとう

1
ram_griever

ページテンプレートにユーザーフィールドを印刷するには、Viewsブロックを作成し、既存の領域に配置します。

よくても、まず https://example.com/admin/structure/display-modes/view の下にUserの新しいビューモードを追加し、次にon https://example.com/admin/config/people/accounts/display 新しく作成したビューモードを選択し、表示するフィールドを配置します。

次に、ビューを作成し、表示Usersし、右下[〜#〜] advanced [〜#〜]に表示させます。ユーザーIDのコンテキストフィルターを追加します。 デフォルト値を提供を選択し、ログインしたユーザーからユーザーIDを選択して保存します。次に、左端のフォーマット>表示>ユーザーで、以前に作成した表示モードを選択します。


ページテンプレートにユーザー値を印刷しません。

  1. page.html.twigは印刷領域です。
  2. page.html.twigはユーザーロールごとにキャッシュされます。同じロールを持つ次のユーザーは、別のユーザーの最初にキャッシュされた値が表示されます。
  3. すべてのフィールド値を持つユーザーオブジェクトは、デフォルトでは完全に読み込まれていません。最初にユーザーを前処理する必要があります。
  4. マークアップを構造的に変更する必要がある場合は、テンプレートを作成する必要があります。
2
leymannx