Comment puis-je obtenir le nom d'utilisateur à partir de l'ID utilisateur? [fermé]

9

Je souhaite imprimer le nom d'utilisateur en connaissant uniquement l'ID utilisateur. Comment puis-je y parvenir?

kiamlaluno
la source
1
Votre titre est d'environ 7, et le corps de la question est d'environ 8. Voter pour clôturer comme peu clair maintenant.
Mołot

Réponses:

17

Vous pouvez utiliser user_load ou \Drupal\user\Entity\User::loadpour ce faire. Le code ci-dessous fournira la solution

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

$name donne le nom d'utilisateur de l'utilisateur.

Vamsi
la source
1
lien pour user_load est déprécié, vous devriez probablement utiliser Entity :: load api.drupal.org/api/drupal/…
Ashkar
L'utilisation $account->getDisplayName()vous aidera à vous assurer d'obtenir une valeur modifiée du nom d'utilisateur.
Prestosaurus
7

En D8, si vous ne connaissez pas l'uid, vous pouvez le faire:

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
la source
1

Il existe plusieurs façons d'obtenir le nom de l'utilisateur par programmation

$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
la source
0

Vous pouvez utiliser user_load($uid); Cela retournera un objet utilisateur entièrement chargé (en D7).

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

Cela devrait imprimer le nom d'utilisateur.

bodi87
la source
Il lance une erreur rencontrée par le webiste après l'ajout de ces lignes. Je pense que le code ci-dessus fonctionne pour D7
La question est balisée [8].
wizonesolutions