Skip to main content

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;

 

Related articles

Andrew Fletcher22 Nov 2023
Fatal error: Maximum execution time of 30 seconds exceeded in ...
When reloading a page, you may encounter the following error:Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/html/content/core/lib/Drupal/Core/{some file .php} on line n&nbsp;SolutionTo resolve this issue, you need to adjust the max_execution_time parameter in the php.ini...
Andrew Fletcher16 Nov 2023
Drupal and AWS - over 300 simultaneous database connections
The issue of over 300 simultaneous database connections in the context of AWS and Drupal can have several potential causes. Here are some common factors to consider:Server ConfigurationCheck your server configuration to ensure it can handle the expected number of simultaneous connections. This...