Andrew Fletcher published: 31 March 2022 (updated) 7 April 2022 1 minute read
How to get the current user or load a user using a uid value.
$current_user = \Drupal::currentUser();
$user = \Drupal\user\Entity\User::load($current_user->id());or just use
$user = \Drupal\user\Entity\User::load(\Drupal::currentUser()->id());An example of this in action
/**
* Change the display of the user's name.
*
* @param int $uid
* User id.
*
* @return string
* User name.
*/
function change_users_name($uid) {
// status of the current user
$logged_in = \Drupal::currentUser()->isAuthenticated();
$author = \Drupal\user\Entity\User::load($uid);
$first_name = $author->get('field_firstname')->value;
$last_name = $author->get('field_lastname')->value;
$user_url = Url::fromRoute('user.page', ['user' => $author->id()]);
$link = Link::fromTextAndUrl($last_name, $user_url)->toString();
return ($logged_in) ? $link : $first_name . " " . $last_name;
}
This can be further reduced where the line
$author = \Drupal\user\Entity\User::load($uid);Becomes
$author = User::load($uid);To make this change, you'll need to add at the top of the file
<?php
// ... other use references ... //
use Drupal\user\Entity\User;