मुझे प्रोग्राम द्वारा उपयोगकर्ता कैसे प्राप्त होते हैं


19

Drupal 8 में मुझे सभी उपयोगकर्ताओं को भूमिका नाम दिया जाना चाहिए।

जवाबों:


29

क्षमा करें, पहली बार गलत संपत्ति के नाम का उपयोग किया गया है:

use  \Drupal\user\Entity\User;

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

dpm($users);

1
यह ध्यान दिया जाना चाहिए कि 'मॉडरेटर' भूमिका का नाम (लेबल के रूप में) नहीं है, जैसा कि सवाल बताता है, लेकिन वास्तव में भूमिका की आईडी है।
plocks

11

यदि आप ऐसी कक्षा में हैं, जहाँ आप निर्भरता इंजेक्शन, या इकाई भंडारण हैंडलर का उपयोग कर सकते हैं, तो आप यह भी कर सकते हैं:

$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);

-2

उचित तरीका यह है कि UnitTypeManager को UnitStorage हैंडल प्राप्त करने के लिए, और id लोड करने के लिए इसका उपयोग करने के लिए उचित तरीका का उपयोग करें। कुछ उदाहरण:

\Drupal::service('entity_type.manager')->getStorage('user')->load($uid);
\Drupal::service('entity_type.manager')->getStorage('user')->loadMultiple([$uid1, $uid2]);

2
यह काम नहीं करता है। यह उपयोगकर्ताओं को भूमिका से नहीं मिलता है, जैसा कि प्रश्न का अनुरोध किया गया है।
5'19
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.