web-dev-qa-db-fra.com

Comment obtenir des utilisateurs par rôle par programme

Dans Drupal 8, je dois obtenir tous les utilisateurs par nom de rôle donné.

20
AndrewK

Désolé, j'ai utilisé un nom de propriété incorrect pour la première fois, une réponse:

use  \Drupal\user\Entity\User;

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

dpm($users);
30
AndrewK

Si vous êtes dans une classe où vous pouvez utiliser l'injection de dépendances ou le gestionnaire de stockage d'entités, vous pouvez également procéder comme suit:

$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