it-swarm.com.de

Wie verwende ich das aktuelle Benutzerobjekt in Drupal 8?

Die Antwort auf " Gibt es eine Funktion zum Abrufen des aktuellen Benutzerobjekts, die den Zugriff auf die globale Variable vermeidet? " enthält Folgendes:

In Drupal 8) verwenden Sie einfach die statische Methode\Drupal :: currentUser (), um das Äquivalent von Drupal 7 $ GLOBALS ['user'] zu erhalten.

Ich habe versucht, den folgenden Code zu verwenden:

$user = \Drupal::currentUser(); 
$name = $user->get('name')->value;

Dies führt jedoch zu einem Fehler wie dem folgenden:

Schwerwiegender Fehler: Aufruf der undefinierten Methode Drupal\Core\Session\AccountProxy :: get () in /home/remindme/uhoc.org/modules/testmodule/src/Form/FruitForm.php in Zeile 173 (Zeile 173 ist $name = $user->get('name')->value; _

Muss ich einen Namespace verwenden oder gibt es eine andere Möglichkeit, auf das Benutzerobjekt zuzugreifen?

3
tax14

Ja, Sie müssen einen Namensraum verwenden. Sie können den Namensraum direkt so einfügen

$user = \Drupal\user\Entity\User::load(\Drupal::currentUser()->id());
$name = $user->get('name')->value;
5
No Sssweat