Drupal::currentUser()
повертає об'єкт, що реалізує Drupal\Core\Session\AccountProxyInterface
. Це відрізняється від того, що повернуто з User::load()
, що є об'єктом реалізації Drupal\user\UserInterface
.
Це означає, що ви не впевнені, що отримаєте повний User
об’єкт із завантаженими полями, але навіть не впевнені, що отримаєте User
об’єкт. Як наслідок, ви викликаєте виклик деяких методів, доступних у User
класі, таких як User::get()
. Ви можете зателефонувати AccountInterface::id()
, що повертає ідентифікатор користувача; з цим ви можете потім завантажити повний User
об'єкт User::load()
і мати доступ до всіх модулів полів, приєднаних до сутності.
use Drupal\Core\Session\AccountProxyInterface;
use Drupal\user\Entity\User;
$account = User::load(\Drupal::currentUser()->id());
Після цього $account
ви можете отримати доступ до всіх полів, пов’язаних із обліковим записом користувача.