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


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 дает имя пользователя.


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

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;

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


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

Вопрос помечен [8].
wizonesolutions
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.