আমি কীভাবে প্রোগ্রামের মাধ্যমে ভূমিকার মাধ্যমে ব্যবহারকারীদের পেতে পারি


19

ড্রুপাল 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
এটি লক্ষ করা উচিত যে 'মডারেটর' ভূমিকাটির নাম (লেবেল হিসাবে) নয়, প্রশ্নটি যেমন পরামর্শ দেয় তবে বাস্তবে ভূমিকার আইডি।
প্লট করুন

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

-2

সঠিক উপায় হ'ল ইন্টিটিস্টেরেজ হ্যান্ডেলটি পাওয়ার জন্য ইন্টিটিটাইপম্যানেজার ব্যবহার করা এবং আইডিগুলি লোড করার জন্য এটি ব্যবহার করা। কিছু উদাহরণ:

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

2
এটি কাজ করে না। এটি অনুরোধ হিসাবে প্রশ্নের অনুরোধ হিসাবে ব্যবহারকারীদের ভূমিকা অনুসারে পায় না।
প্লে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.