Ich habe eine Zweigvorlage für die kompakte Anzeige eines Benutzers, in der ich die definierten Inhaltsfelder ausgeben kann. Gibt es eine Möglichkeit, den Benutzernamen dieses Benutzers auszugeben?
8
{{ user.name.0.value }}
sollte dir geben, was du willst.
Der bevorzugte Weg ist das Einfügen des Benutzernamens als Variable in eine Vorverarbeitungsfunktion. Passen Sie dies in der .theme-Datei Ihres Themas an
<?php
/**
* Implements hook_preprocess_user().
*/
function yourtheme_preprocess_user(&$variables) {
/** @var User $account */
$account = $variables['elements']['#user'];
$variables['username'] = $account->getDisplayName();
}
dann können Sie das in Ihrer Benutzervorlage als verwenden {{ username }}
.
Bearbeiten:
So erhalten Sie die vollständige URL:
{{ path('entity.user.canonical', {'user': user.id}, {}) }}
$variables['user_url'] = Url::fromRoute('entity.user.canonical', ['user' => $account->id()])->setAbsolute()->toString();
hook_user_format_name()
, um alles zu tun, was eine Site für Benutzernamen wünscht.Der Anzeigename ist kein Feld, in dem Sie konfigurieren können
{{ content }}
. Sie können es direkt von der Benutzerentität erhalten:Referenz für die PHP-Methode: AccountInterface :: getDisplayName
quelle
Diese Antwort dient speziell dazu, den Benutzernamen in menu.html.twig abzurufen
Die Lösung, den Benutzernamen durch ein Makro zu übergeben, hat bei mir funktioniert. Das Festlegen und Übergeben einer Variablen an das Makro ist erforderlich, da diese außerhalb des Bereichs des Makros in menu.html.twig liegen
quelle