Как я могу получить имя пользователя из идентификатора пользователя? [закрыто]

9

Я хочу напечатать имя пользователя, зная только идентификатор пользователя. Как мне этого добиться?

киамлалуно
источник
1
Ваш заголовок - около 7, а вопрос - около 8. Голосование за закрытие пока неясно.
Молот

Ответы:

17

Вы можете использовать user_load или \Drupal\user\Entity\User::loadсделать это. Ниже код предоставит решение

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

$name дает имя пользователя.

Vamsi
источник
1
ссылка на user_load устарела, вам, вероятно, следует использовать Entity :: load api.drupal.org/api/drupal/…
Ашкар А.Рахман
Использование $account->getDisplayName()поможет вам получить любое измененное значение имени пользователя.
Prestosaurus
7

В D8, если вы не знаете uid, вы можете сделать это:

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
источник
1

Есть несколько способов получить имя пользователя программно

$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

Вы можете использовать user_load($uid); Это вернет полностью загруженный объект пользователя (в D7).

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

Это должно напечатать имя пользователя.

bodi87
источник
Выдает webiste обнаруженную ошибку после добавления этой строки. Я думаю, что выше код работает для D7
Вопрос помечен [8].
wizonesolutions