Jak uzyskać nazwę użytkownika z identyfikatora użytkownika? [Zamknięte]


9

Chcę wydrukować nazwę użytkownika, znając tylko identyfikator użytkownika. Jak to osiągnąć?


1
Twój tytuł ma około 7 lat, a treść pytania około 8. Głosowanie na zakończenie jest niejasne.
Mołot

Odpowiedzi:


17

Możesz użyć user_load lub \Drupal\user\Entity\User::loadaby to zrobić. Poniższy kod zapewni rozwiązanie

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

$name podaje nazwę użytkownika.


1
link do user_load jest przestarzały, prawdopodobnie powinieneś użyć Entity :: load api.drupal.org/api/drupal/…
Ashkar A.Rahman

Użycie $account->getDisplayName()pomoże ci uzyskać jakąkolwiek zmienioną wartość nazwy użytkownika.
Prestosaurus

7

W D8, jeśli nie znasz identyfikatora UID, możesz to zrobić:

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'); }

1

Istnieje kilka sposobów programowego uzyskania nazwy użytkownika

$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]);

0

Możesz użyć user_load($uid); Zwróci w pełni załadowany obiekt użytkownika (w D7).

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

To powinno wydrukować nazwę użytkownika.


Po dodaniu tego wiersza wyświetla się napotkany błąd strony internetowej. Myślę, że powyższy kod działa dla D7

Pytanie jest oznaczone [8].
wizonesolutions
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.