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ąć?

kiamlaluno
źródło
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.

Vamsi
źródło
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'); }
FlorentS
źródło
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]);
JHONATAN DAVID FERNANDEZ ROSA
źródło
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.

bodi87
źródło
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