ใน Drupal 8 ฉันต้องรับผู้ใช้ทั้งหมดด้วยชื่อบทบาทที่กำหนด
ใน Drupal 8 ฉันต้องรับผู้ใช้ทั้งหมดด้วยชื่อบทบาทที่กำหนด
คำตอบ:
ขออภัยใช้ชื่อคุณสมบัติผิดครั้งแรกคำตอบ:
use \Drupal\user\Entity\User;
$ids = \Drupal::entityQuery('user')
->condition('status', 1)
->condition('roles', 'moderator')
->execute();
$users = User::loadMultiple($ids);
dpm($users);
ถ้าคุณอยู่ในคลาสที่คุณสามารถใช้การฉีดพึ่งพาหรือตัวจัดการที่เก็บเอนทิตีคุณยังสามารถทำสิ่งนี้ได้:
$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);
วิธีที่เหมาะสมคือการใช้ entityTypeManager เพื่อรับหมายเลขอ้างอิง entityStorage และใช้เพื่อโหลดรหัส ตัวอย่างบางส่วน:
\Drupal::service('entity_type.manager')->getStorage('user')->load($uid);
\Drupal::service('entity_type.manager')->getStorage('user')->loadMultiple([$uid1, $uid2]);