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


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.