Wie erhalte ich den Benutzernamen von der Benutzer-ID? [geschlossen]

9

Ich möchte den Benutzernamen drucken und nur die Benutzer-ID kennen. Wie erreiche ich das?

kiamlaluno
quelle
1
Ihr Titel ist ungefähr 7 und Ihr Fragetext ungefähr 8. Die Abstimmung zum Schließen ist jetzt unklar.
Mołot

Antworten:

17

Sie können user_load verwenden oder dies \Drupal\user\Entity\User::loadtun. Der folgende Code bietet die Lösung

 public function content() {
     $account = \Drupal\user\Entity\User::load('uid'); // pass your uid
     $name = $account->getUsername();
     drupal_set_message($name);
 }

$name gibt den Benutzernamen des Benutzers an.

Vamsi
quelle
1
Link für user_load wird abgeschrieben, Sie sollten wahrscheinlich Entity :: load api.drupal.org/api/drupal/…
Ashkar A.Rahman
Mit $account->getDisplayName()wird sichergestellt, dass Sie den geänderten Wert des Benutzernamens erhalten.
Prestosaurus
7

Wenn Sie in D8 die UID nicht kennen, können Sie Folgendes tun:

function test_user_login(\Drupal\Core\Session\AccountInterface $account) {
   $account = \Drupal\user\Entity\User::load(\Drupal::currentUser()->id());
   $user = $account->get('name')->value;
   drupal_set_message($user, 'status'); }
FlorentS
quelle
1

Es gibt verschiedene Möglichkeiten, den Benutzernamen programmgesteuert abzurufen

$account = \Drupal\user\Entity\User::load(1); // pass your uid    
//1 
drupal_set_message($account->name->value);    
//2
drupal_set_message($account->get("name")->value);    
//3
drupal_set_message($account->getUsername());
//4
drupal_set_message($account->name->getValue()[0][value]);
JHONATAN DAVID FERNANDEZ ROSA
quelle
0

Sie können verwenden user_load($uid); Dies gibt ein vollständig geladenes Benutzerobjekt zurück (in D7).

$user = user_load($uid);
print $user->name;

Dies sollte den Benutzernamen drucken.

bodi87
quelle
Nach dem Hinzufügen dieser Zeilen wird ein Fehler auf der Website angezeigt. Ich denke, obiger Code funktioniert für D7
Frage ist markiert [8].
Zauberlösungen