मैं उन सभी उपयोगकर्ताओं की एक सूची प्राप्त करना चाहता हूं जिन्हें एक निश्चित भूमिका नियुक्त की गई है। मैं अपना स्वयं का एसक्यूएल लिख सकता था लेकिन मैं जितना संभव हो एपीआई का उपयोग करना चाहता हूं।क्या उपयोगकर्ताओं की सूची प्राप्त करने के लिए ड्रूपल एपीआई का उपयोग करना संभव है?
उत्तर
वहाँ आम तौर पर काम की इस तरह के लिए कोई Drupal एपीआई कार्य (संस्थाओं है कि कुछ शर्तों को पूरा खींच रहा) कर रहे हैं नहीं है। यह एपीआई में एकल-इकाई सीआरयूडी कार्यों पर ध्यान केंद्रित करता है; बाकी सब कुछ डेवलपर के अपने एसक्यूएल कौशल पर निर्भर है।
दृश्य मॉड्यूल आपको भूमिका, अनुमति इत्यादि द्वारा फ़िल्टर किए गए उपयोगकर्ताओं की सूचियां बनाने की अनुमति देता है - लेकिन यह आसानी से अधिक हो सकता है।
मुझे नहीं पता कि किसी भी एपीआई उपयोगकर्ताओं द्वारा भूमिका निभाने में मदद कर सकता है। यहां आप कुछ लिंक हैं जो आप कुछ प्राप्त कर सकते हैं: http://drupal.org/node/82002। हालांकि एसओ एक भयानक सेवा है, लेकिन मैं ड्रूपल संबंधित प्रश्नों के लिए irc.freenode.org पर drupal.org या #drupal चैनल का उपयोग करने का सुझाव देता हूं।
पी.एस. .: कभी कभी एसक्यूएल कि बुराई :)
मैं सहमत हूं। मैं बहुत सारे वर्डप्रेस प्लगइन्स देखता हूं जो पूर्वनिर्धारित कार्यों का उपयोग करने के बजाय डेटाबेस से सीधे पूछताछ करते हैं। –
बस यह जोड़ने के लिए टिप्पणी करते हुए कि स्टैक ओवरफ्लो ड्रूपल प्रश्नों के लिए बहुत अच्छा है और अधिक लोगों को यहां उनसे पूछना चाहिए। – alxp
एसक्यूएल प्रश्नों से बचा जाना चाहिए, क्योंकि ड्रूपल 7 अमूर्त एसक्यूएल के लिए नए डीबी एपीआई का उपयोग करेगा (इसलिए आप मोंगोडब जैसी चीजों का उपयोग कर सकते हैं :) –
एक आसान विकल्प एसक्यूएल उत्पन्न करने के लिए दृश्यों का उपयोग करना है (जब आप पूर्वावलोकन बटन दबाते हैं तो इसे स्वयं देखें) और फिर Drupal SQL abstraction layer का उपयोग करें ताकि आपको आवश्यक परिणाम प्राप्त करने के लिए Drupal SQL abstraction layer का उपयोग किया जा सके। एक दृश्य प्रदर्शित करने के बजाय कच्चे डेटा।
यह इस तरह एक सा लग चाहते हैं:
$result = db_query('SELECT users.uid AS uid,
users.mail AS users_mail,
users.name AS users_name
FROM users users');
while ($existing_user = db_fetch_object($result)) {
print_r($existing_user); // or do whatever
}
बस पूरा क्वेरी प्राप्त करने के लिए देखने के लिए और अधिक क्षेत्रों को जोड़ने।
दृश्य एसक्यूएल अनावश्यक रूप से जटिल है, 'यूआईडी, मेल, नाम {उपयोगकर्ता}' से नाम – Adaddinsane
एसक्यूएल कि मेरे लिए काम किया:
$users = ""; $result = db_query('SELECT users.name AS users_name FROM users users INNER JOIN users_roles users_roles ON users.uid = users_roles.uid WHERE users_roles.rid = 4'); while ($existing_user = db_fetch_object($result)) { if ($users != "") $users .= ", "; $users .= $existing_user->users_name; // or do whatever } echo $users;
ध्यान रखें कि यह Drupal 6 के लिए है और मैं बड़ा उपयोगकर्ता अड्डों के लिए इस के प्रदर्शन के बारे में निश्चित नहीं हूँ। Drupal 7.
प्रदर्शन ठीक होगा। डी 7 कोड में आपका उदाहरण: 'var_dump (db_query ('उपयोगकर्ता से चुनें {उपयोगकर्ता} में प्रवेश करें {user_roles} r. uid = r.uid जहां r.rid = 4') -> fetchCol()); ' – pfrenssen
के बारे में निश्चित नहीं है आप उपयोगकर्ताओं की सरणी प्राप्त करने के लिए entity_load का उपयोग कर सकते हैं। यहाँ नमूना है कि व्यवस्थापक उपयोगकर्ताओं के लिए सभी ईमेल की सूची बनाएगा है ड्रुपल 7 में
<?php
$users = entity_load('user');
$emails = '';
foreach($users as $user) {
if (array_key_exists(3, $user->roles)) {
if (strlen($emails) > 0) {
$emails .= ' ' . $user->mail;
} else {
$emails = $user->mail;
}
}
}
?>
जबकि ईटन द्वारा स्वीकृत उत्तर आम तौर पर ड्रूपल के मामले में होता है,' entity_load ('user') वास्तव में यूआईडी द्वारा अनुक्रमित एक सरणी में ऑब्जेक्ट्स के रूप में सभी साइट उपयोगकर्ताओं को लोड करता है। –
यह काम करता है लेकिन बेहद अक्षम है और उन साइटों पर एक भयानक विचार होगा जिनमें हजारों उपयोगकर्ता हैं। – chadpeppers
(सूचना भेजने के लिए प्रयोग किया जाता है), का उपयोग EntityFieldQuery उचित तरीका है।
क्या आप ऐसा करने के लिए एक उदाहरण प्रदान कर सकते हैं? – akalata
Drupal 8 में निम्नलिखित काम करता है
\Drupal::service('entity_type.manager')
->getStorage('user')
->loadByProperties(['roles' => 'administrator']);
(इस उदाहरण में, administrator
भूमिका के साथ सभी उपयोगकर्ताओं को लोड) उपयोगकर्ता संस्थाओं की एक सूची प्रदान करेगा।
uid
रों की एक सूची के बजाय एक इकाई क्षेत्र क्वेरी पाने के लिए,:
$query = \Drupal::service('entity_type.manager')->getStorage('user')->getQuery();
$query->condition('roles', 'administrator');
$query->execute();
Drupal 8 में:
$users = \Drupal\user\Entity\User::loadMultiple();
और अगर आप जैसे प्राप्त करना चाहते हैं केवल व्यवस्थापक:
$admins = [];
foreach ($users as $user) {
if ($user->hasRole('administrator')) {
$admins[] = $user;
}
}
- 1. उपयोगकर्ता के दोस्तों की सूची प्राप्त करने के लिए फेसबुक ग्राफ़ एपीआई का उपयोग
- 2. टीएफएस एपीआई - क्या वर्कटाइम प्रकार के लिए संक्रमण की सूची प्राप्त करने का कोई तरीका है?
- 3. ड्रूपल फॉर्म एपीआई में "# प्रोसेस" कॉलबैक का क्या उपयोग है?
- 4. एपीआई शहर का नाम टाइप करने और संभावित शहरों की सूची प्राप्त करने के लिए?
- 5. क्या PHP में array_shift() का उपयोग करना संभव है और कुंजी प्राप्त करना संभव है?
- 6. एसवीएन: क्या दिए गए पथ के लिए संशोधन संख्याओं की सूची प्राप्त करना संभव है?
- 7. कैसे सब उदाहरण के डेटाबेस के लिए उपयोगकर्ताओं की सूची प्राप्त करने के लिए
- 8. क्या सीएस के साथ ASP.NET का उपयोग कर डोमेन पर सभी उपयोगकर्ताओं की सूची प्राप्त करने का कोई तरीका है?
- 9. क्या एक विशिष्ट यूआरएल से टिप्पणियां प्राप्त करने के लिए डिस्कस एपीआई का उपयोग करना संभव है?
- 10. क्या किसी फ़ोल्डर को स्थानांतरित करने के लिए अधिसूचनाएं प्राप्त करने के लिए FSEvents का उपयोग करना संभव है?
- 11. क्या वेबसाइट की निर्देशिका के तहत फ़ाइलों की सूची प्राप्त करना संभव है? कैसे?
- 12. सभी वर्गों की सूची प्राप्त करने के लिए Google प्रतिबिंबों का उपयोग करना - लेकिन जावा। *
- 13. क्या सी # में अनियमित जेनरिक की सूची का उपयोग करना संभव है?
- 14. क्या आईट्यून्स ऐप स्टोर एपीआई के साथ किसी ऐप की रैंकिंग स्थिति प्राप्त करना संभव है?
- 15. कोणीयजेएस - क्या एचटीएमएल मूल्यों को प्रस्तुत करने के लिए एनजी-दोहराव का उपयोग करना संभव है?
- 16. क्या सदस्य टेम्पलेट विशेषज्ञता का चयन करने के लिए std :: enable_if का उपयोग करना संभव है?
- 17. वर्डप्रेस में लॉग इन उपयोगकर्ताओं की सूची?
- 18. क्या जेपीए में खाली सूची के लिए पास करना और परीक्षण करना संभव है?
- 19. क्या एपीआई का उपयोग कर सभी सब्रेडडिट्स की सूची या जेसन प्राप्त करने का कोई तरीका है?
- 20. ड्रूपल फॉर्म एपीआई
- 21. क्या कक्षा के सभी उप-वर्ग प्राप्त करना संभव है?
- 22. क्या मुझे ड्रूपल 6 या ड्रूपल 7 का उपयोग करना चाहिए?
- 23. क्या char_ wchar_t के बीच अंतर करने के लिए type_traits का उपयोग करना संभव है?
- 24. क्या सबवर्सन से जोड़े गए या हटाई गई फ़ाइलों की सूची प्राप्त करना संभव है?
- 25. क्या क्लोन jQuery ऑब्जेक्ट की ऊंचाई प्राप्त करना संभव है?
- 26. क्या इसे संकलित करते समय प्रोग्राम को संशोधित करने के लिए जीएचसी एपीआई का उपयोग करना संभव है?
- 27. क्या एमपीईजी ट्रांसपोर्ट स्ट्रीम वीडियो प्रदर्शित करने के लिए एचटीएमएल 5 का उपयोग करना संभव है?
- 28. कोर सेवा वाले उपयोगकर्ताओं की सूची कैसे प्राप्त करूं?
- 29. क्या Django और Node.Js का उपयोग करना संभव है?
- 30. क्या यूट्यूब-एपीआई के साथ मॉडेस्टब्रैंडिंग का उपयोग करना संभव है?
मैं अपना जवाब दूंगा लेकिन मुझे लगता है कि मुझे बस इस पर विस्तार करना चाहिए। ऐसा कोई फ़ंक्शन नहीं है जो आपको उपयोगकर्ताओं को सूचीबद्ध करने और ड्रूपल (कम से कम कोर) के भीतर भूमिका से फ़िल्टर करने की अनुमति देता है। आप अपना खुद का फ़ंक्शन लिख सकते हैं या जैसे खाने वाले ने कहा, उपयोगकर्ताओं की सूची बनाने के लिए विचारों का उपयोग करें। – codeincarnate
यहां एक विचार आसान है। –
आप __really__ को विचारों का उपयोग करना चाहिए। यह वह समाधान है जिसे आप ढूंढ रहे हैं। – alexanderpas