Làm cách nào để có được tên người dùng từ ID người dùng? [đóng cửa]


9

Tôi muốn in tên người dùng chỉ biết ID người dùng. Làm thế nào để tôi đạt được điều này?


1
Tiêu đề của bạn là khoảng 7, và cơ quan câu hỏi về 8. Bỏ phiếu để đóng như không rõ ràng bây giờ.
Mołot

Câu trả lời:


17

Bạn có thể sử dụng user_load hoặc \Drupal\user\Entity\User::loadđể làm điều này. Mã dưới đây sẽ cung cấp giải pháp

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

$name cung cấp tên người dùng của người dùng.


1
liên kết cho user_load không được dùng nữa, có lẽ bạn nên sử dụng Entity :: load api.drupal.org/api/drupal/ Kẻ
Ashkar A.Rahman

Sử dụng $account->getDisplayName()sẽ giúp đảm bảo bạn nhận được bất kỳ giá trị thay đổi nào của tên người dùng.
Prestosaurus

7

Trong D8, nếu bạn không biết uid, bạn có thể làm điều này:

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

Có một số cách để có được tên người dùng lập trình

$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

Bạn có thể sử dụng user_load($uid); Điều này sẽ trả về một đối tượng Người dùng được tải đầy đủ (trong D7).

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

Điều này sẽ in tên người dùng.


Nó ném webiste gặp lỗi sau khi thêm dòng này. Tôi nghĩ rằng mã trên hoạt động cho D7

Câu hỏi được gắn thẻ [8].
wizonesolutions
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.