是否可以使用Drupal api获取用户列表?

Law*_*nti 6 php drupal

我想获得已分配某个角色的所有用户的列表.我可以编写自己的SQL,但我想尽可能多地使用api.

小智 9

您可以使用entity_load来获取用户数组.以下示例将为管理员用户创建所有电子邮件列表(用于发送通知)

<?php
$users = entity_load('user');
$emails = '';
foreach($users as $user) {
  if (array_key_exists(3, $user->roles)) {
    if (strlen($emails) > 0) {
      $emails .= ' ' . $user->mail;
    } else {
      $emails = $user->mail;
    }
  }
}
?>
Run Code Online (Sandbox Code Playgroud)

  • 虽然Eaton接受的答案通常似乎是关于Drupal的情况,但是`entity_load('user')实际上确实将所有站点用户作为对象加载到由uid索引的数组中. (2认同)

Eat*_*ton 5

对于这种任务通常没有Drupal API函数(提取符合特定条件的实体).它倾向于关注API中的单实体CRUD函数; 其他一切都取决于开发人员自己的SQL技能.

Views模块允许您构建按角色,权限等过滤的用户列表 - 但它可能很容易过度.