मैं सेवाओं के माध्यम से एक दृश्य में संदर्भ फ़िल्टर कैसे पास कर सकता हूं


11

मेरे पास एक दृष्टिकोण है जो सही परिणाम वापस करने के लिए एक संदर्भ फ़िल्टर को स्वीकार करता है। मैं सेवाओं 3 और Drupal 7 का उपयोग कर रहा हूं। मैं एक समापन बिंदु बनाने में सक्षम हूं, और सेवाओं के माध्यम से दृश्य को पुनः प्राप्त कर सकता हूं। लेकिन ऐसा लगता है कि संदर्भ फ़िल्टर को पारित करने का कोई तरीका नहीं है, क्योंकि services_views में केवल एक पुनर्प्राप्ति विधि है (जो GET का उपयोग करता है)। क्या किसी को पता है कि क्या यह संभव है, और यदि ऐसा है तो यह कैसे किया जा सकता है?

जवाबों:



3

जब तक फ़िल्टर दृश्य में सामने आते हैं, फील्डनाम प्रासंगिक फिल्टर के रूप में उपलब्ध होते हैं। उदाहरण के लिए, फ़िल्टर सूची में NID को उजागर करें और आप कर सकते हैं

GET /endpoint?nid=5

1
यह समाधान उजागर फिल्टर मानदंडों के लिए काम करता है। मेरे ज्ञान का सबसे अच्छा करने के लिए प्रासंगिक फिल्टर काम नहीं करते हैं, लेकिन यह एक उत्कृष्ट समाधान है।
ब्रेंट

3

यह पहले से ही उत्तर दिया गया प्रश्न है, लेकिन भविष्य में यहां ब्राउज़ करने वाले अन्य लोगों के लिए, मैं सेवा दृश्य में प्रलेखन का उपयोग करने और लेने की सलाह दूंगा । यह बताता है कि अन्य संभावित तर्कों के एक समूह के साथ-साथ संदर्भ फ़िल्टर कैसे पारित किया जाए, और इसमें एक डेमो वीडियो है और उदाहरण दिखाता है।


1
आगे अनुसंधान करने के बाद, ऐसा प्रतीत होता है कि यह सेवाओं_ साक्षात्कार के संशोधन के बिना संभव नहीं है।
user379468

2

यदि आपको अपने संदर्भ फ़िल्टर में कई मानों का उपयोग करना है, तो मेरा सुझाव है कि निम्नलिखित कार्य करें:

  • अपना प्रासंगिक फ़िल्टर बनाएं (मेरे मामले में: nid)
  • "एक डिफ़ॉल्ट मूल्य प्रदान करें" पर क्लिक करें और प्रकार निर्धारित करें जैसे कि PHP प्रासंगिक फ़िल्टर एक स्ट्रिंग को + या अल्पविराम द्वारा अलग किए गए कई मान के साथ होने की उम्मीद करता है।

return str_replace("|", "+", $_GET['nid']);

  • "अधिक" अनुभाग में, "कई मानों की अनुमति दें" जांचें।

अब आपकी सेवा पर कॉल करते समय, अपने संदर्भ फ़िल्टर इस तरह प्रदान करें: ... / my_service? Nid = 1 | 3 3 |


2

आप में से जो अभी भी समस्याएँ हैं, उनके लिए यह सुनिश्चित करें कि जब आप फ़िल्टर को दृश्य में जोड़ते हैं, तो निर्दिष्ट फ़ील्ड के लिए सेटिंग्स के तहत, एक फ़िल्टर पहचानकर्ता होता है। यह सेवा दृश्य प्रलेखन पर सूचीबद्ध दो स्वरूपों में क्वेरिस्ट्रिंग में दिए गए तर्क की आवश्यकता है।


मैं उस पर संघर्ष कर रहा था, सहज नहीं था क्योंकि मैंने शीर्षक कुंजी को फ़िल्टर कुंजी के रूप में इस्तेमाल करने की कल्पना की थी। धन्यवाद!
डोनडुलसिनिया

1

मैं Drupal Services के साथ एक प्रासंगिक फ़िल्टर प्राप्त करने में सक्षम था: 1) 'व्यूज़ प्रासंगिक फ़िल्टर क्वेरी' मॉड्यूल ( https://drupal.org/project/views_contextual_filter_query ) 2 को सक्षम करते हुए URL के माध्यम से प्रासंगिक फ़िल्टर को एक querystring के रूप में पास कर रहा है।

प्रासंगिक फ़िल्टर में, आपको URL से FIL जब फ़िल्टर करें पर उपलब्ध नहीं है ’-> क्वेरी पैरामीटर का चयन करना होगा। फिर आप उस पैरामीटर का नाम जोड़ पाएंगे जो आप URL में उपयोग करेंगे। यह आपको + और | का उपयोग करने की अनुमति भी देता है कई फ़िल्टर मानदंड चुनने के लिए वर्ण।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.