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