Я создаю модуль в Drupal 7, которому нужно получить список пользователей из определенной роли. Я видел примеры, показывающие, как получить роль вошедшего в систему пользователя и список ролей, но я не видел ничего, что помогло бы мне получить список пользователей в определенной роли. Есть ли способ сделать это? Я пытался использовать user_role, но это дало мне только список существующих ролей. Есть ли что-то еще, что я должен делать с этим?
Как получить список пользователей в определенной роли?
Ответы (1)
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.
person
Patryk
schedule
06.08.2013