📜  drupal 8 获取用户 (1)

📅  最后修改于: 2023-12-03 15:30:34.294000             🧑  作者: Mango

Drupal 8 获取用户

Drupal 8 提供了丰富的 API 来获取用户信息。本文将介绍一些常用的方法来获取用户。

获取当前用户

对于当前登录的用户,可以使用以下方法来获取其信息:

$user = \Drupal::currentUser();
$uid = $user->id();
$username = $user->getUsername();
$email = $user->getEmail();

其中,$user->id() 返回当前用户的 ID,$user->getUsername() 返回当前用户的用户名,$user->getEmail() 返回当前用户的邮箱地址。

获取指定用户

如果需要获取指定用户的信息,可以使用 entity_load 方法:

$user = \Drupal\user\Entity\User::load($uid);

其中,$uid 是指定用户的 ID。

获取用户信息后,可以使用以下方法来获取其相关信息:

$username = $user->getUsername();
$email = $user->getEmail();
$name = $user->getDisplayName();
$created = $user->getCreatedTime();

其中,$user->getUsername() 返回指定用户的用户名,$user->getEmail() 返回指定用户的邮箱地址,$user->getDisplayName() 返回指定用户的显示名称,$user->getCreatedTime() 返回指定用户的创建时间。

获取用户列表

如果需要获取用户列表,可以使用 entity_query 方法:

$query = \Drupal::entityQuery('user');
$result = $query->execute();
$users = \Drupal\user\Entity\User::loadMultiple($result);

其中,$query 是查询对象,$result 是执行查询的结果,$users 是查询到的用户对象集合。

获取登录用户的权限

可以使用 Drupal\Core\Session\AccountProxyInterface 接口来获取登录用户的权限:

$account = \Drupal::currentUser();
$roles = $account->getRoles();

其中,$roles 是当前用户所具有的角色列表。

总结

本文介绍了 Drupal 8 中获取用户信息的常见方法,包括获取当前用户、指定用户和用户列表,以及获取登录用户的权限。通过这些方法,我们可以轻松地在 Drupal 8 中获取到所需的用户信息。