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 に答える