如何从用户ID获取用户名?[关闭]


9

我想打印仅知道用户ID的用户名。我该如何实现?


1
您的标题大约是7,问题正文大约是8。现在投票关闭尚不清楚。
Mołot

Answers:


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折旧,你应该使用实体::负荷api.drupal.org/api/drupal/...
Ashkar A.Rahman

使用$account->getDisplayName()有助于确保您获得用户名的任何更改的值。
宝龙

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); This将返回一个完全加载的User对象(在D7中)。

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

这应该打印用户名。


添加此行后,它将引发webiste遇到错误。我认为以上代码适用于D7

问题被标记为[8]。
wizonesolutions
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.