欢迎各位兄弟 发布技术文章
这里的技术是共享的
在 Drupal 7 中,如果您想获取特定角色的所有用户,您可以使用以下方法:
以下是使用 PHP 代码的示例,您可以将这段代码放在自定义模块或主题的 template.php
文件中,或者通过 drush
执行。
php
function get_users_by_role($role_name) { // 获取角色的 ID $role = user_role_load_by_name($role_name); if (!$role) { return []; // 如果角色不存在,返回空数组 } $role_id = $role->rid; // 查询所有具有该角色的用户 $query = db_select('users', 'u') ->fields('u', ['uid', 'name']) ->condition('u.status', 1) // 只有启用的用户 ->condition('u.rid', $role_id); $result = $query->execute(); // 将用户存储到数组中 $users = []; foreach ($result as $record) { $users[] = $record; } return $users; } // 使用示例 $role_name = 'authenticated user'; // 替换为您想要的角色名称 $users = get_users_by_role($role_name); foreach ($users as $user) { // 打印用户信息 print_r($user); }
drush
如果您更喜欢命令行操作,可以使用 drush
来查询用户。首先, 确保您已经安装了 drush。然后您可以使用以下命令来获取带有特定角色的用户列表:
bash
drush sqlq "SELECT u.uid, u.name FROM users u, users_roles ur WHERE u.uid = ur.uid AND ur.rid = (SELECT rid FROM users_roles WHERE name = 'authenticated user')"
请用您需要的角色名替换 'authenticated user'
。
如果您更喜欢使用 UI,可以使用 Views 模块来列出所有具有特定角色的用户:
安装并启用 Views 模块。
创建一个新的 View,选择“用户”作为基础表。
在过滤器中添加“用户角色”条件,选择您希望查看的角色。
设置显示的字段(例如用户 ID、用户名等)。
保存并查看您的视图。
通过这几种方法,您应该能够成功获取特定角色的所有用户。选择适合您的需求和工作流的方法。