29 抱歉,第一次使用错误的属性名称,答案是: use \Drupal\user\Entity\User; $ids = \Drupal::entityQuery('user') ->condition('status', 1) ->condition('roles', 'moderator') ->execute(); $users = User::loadMultiple($ids); dpm($users); — 安德鲁 source 1 应该注意的是,“主持人”不是该角色的名称(如标签所示),实际上是该角色的ID。 — plocks
10 如果您在可以使用依赖项注入或实体存储处理程序的类中,则还可以执行以下操作: $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); — 约阿希姆 source
-2 正确的方法是使用entityTypeManager来获取entityStorage句柄,并使用它来加载id。一些例子: \Drupal::service('entity_type.manager')->getStorage('user')->load($uid); \Drupal::service('entity_type.manager')->getStorage('user')->loadMultiple([$uid1, $uid2]); 2 这行不通。正如所要求的那样,这不能按角色获得用户。 — plocks