¿Cómo obtengo el nombre de usuario de la ID de usuario? [cerrado]

9

Quiero imprimir el nombre de usuario conociendo solo la ID de usuario. ¿Cómo logro esto?

kiamlaluno
fuente
1
Su título es de aproximadamente 7, y el cuerpo de la pregunta sobre 8. Votar para cerrar ahora no está claro.
Mołot

Respuestas:

17

Puede usar user_load o \Drupal\user\Entity\User::loadpara hacer esto. El siguiente código proporcionará la solución

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

$name da el nombre de usuario del usuario.

Vamsi
fuente
1
el enlace para user_load se deprecia, probablemente deberías usar Entity :: load api.drupal.org/api/drupal/…
Ashkar A.Rahman
El uso $account->getDisplayName()le ayudará a asegurarse de obtener cualquier valor alterado del nombre de usuario.
Prestosaurus
7

En D8, si no conoce el uid, puede hacer esto:

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
fuente
1

Hay varias formas de obtener el nombre del usuario mediante programación

$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
fuente
0

Puede usar user_load($uid); Esto devolverá un objeto de Usuario completamente cargado (en D7).

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

Esto debería imprimir el nombre de usuario.

bodi87
fuente
Lanza el error encontrado en el sitio web después de agregar estas líneas. Creo que el código anterior funciona para D7
La pregunta está etiquetada [8].
wizonesolutions