0

我正在 Drupal 7 中创建一个模块,该模块需要从某个角色获取用户列表。我已经看到了一些示例,展示了如何获取登录用户的角色和角色列表,但是我没有看到任何可以帮助我获取特定角色的用户列表的示例。有没有办法做到这一点?我试图使用user_role,但这只给了我一个现有角色的列表。还有什么我应该用它做的吗?

4

1 回答 1

2

user_roles()实际上是以搜索roles数据库表以提取所有角色的方式实现的。您可以做类似的事情并在users表中搜索给定的角色。请看下面的函数

function getUsersByRole($rid = 1) { // rid = Role Id from users_roles table
    $query = db_select('users', 'u');
    $query->fields('u', array('uid', 'name'));
    $query->innerJoin('users_roles', 'r', 'r.uid = u.uid');
    $query->condition('r.rid', $rid);
    $query->orderBy('u.name');

    $result = $query->execute();

    $users = array();
    foreach ($result as $user) {
        $users[] = $user;
    }

    return $users;
}

$users = getUsersByRole(3);
var_dump($users);

确保您将在 Drupal 环境中运行它。

于 2013-08-06T15:01:12.293 回答