web-dev-qa-db-ja.com

プログラムで役割ごとにユーザーを取得する方法

Drupal 8では、与えられたロール名ですべてのユーザーを取得する必要があります。

20
AndrewK

申し訳ありませんが、最初は間違ったプロパティ名を使用しました。答え:

use  \Drupal\user\Entity\User;

$ids = \Drupal::entityQuery('user')
->condition('status', 1)
->condition('roles', 'moderator')
->execute();
$users = User::loadMultiple($ids);

dpm($users);
30
AndrewK

依存関係注入またはエンティティストレージハンドラーを使用できるクラスにいる場合は、次のようにすることもできます。

$user_storage = \Drupal::service('entity_type.manager')->getStorage('user');

$ids = $user_storage->getQuery()
  ->condition('status', 1)
  ->condition('roles', 'moderator')
  ->execute();
$users = $user_storage->loadMultiple($ids);
12
joachim