खेतों पर समग्र जानकारी प्राप्त करने का सबसे स्थायी तरीका क्या है?


12

EntityFieldQuery को फील्ड डेटा पर कुल कार्यों (SUM, AVG, आदि) को चलाने के लिए उपयोग करने का इरादा नहीं है क्योंकि यह SQL-अज्ञेयवादी है। उस ने कहा, इस तरह के संचालन को समय-समय पर वैध रूप से चलाने की आवश्यकता होती है। EntityFieldQuery और विशेष रूप से EntityFieldQuery के साथ SQL फ़ंक्शन के अनुसार और कुल कार्यों SUM, ARG और MAX का उपयोग कैसे करें , SQL प्रश्नों का उपयोग करने की आवश्यकता है, और यह दृष्टिकोण मेरे उपयोग के मामले में सबसे उपयुक्त है। मैं कल @chx के साथ बोल रहा था और उन्होंने क्षेत्र के नाम और स्तंभ नाम को खोजने के लिए आंतरिक कार्यों के एक जोड़े का उपयोग करने की सिफारिश की। मैं सोच रहा था कि क्या यह टिकाऊ है और अगर यह कोडबेस में करने के लिए उपयुक्त है जिसे मैं ओथर्स को जारी कर सकता हूं।

अगर यह सबसे अच्छा तरीका है, तो यह सबसे अच्छा तरीका है। इससे पहले कि मैं यह सुनिश्चित कर पाऊं कि मैं गन्दा महसूस कर रहा हूं, मैं सिर्फ यह नहीं करना चाहता।


अभी के लिए, मैंने अभी-अभी आंतरिक कार्यों ( _field_sql_storage_tablename($field)और _field_sql_storage_columnname($field_name, $column) का उपयोग किया है, जो मेरी वर्तमान आवश्यकताओं के अनुरूप है, लेकिन यह टिकाऊ नहीं है, इसलिए इस प्रश्न के उत्तर में रुचि रखने वाले को एक आना चाहिए।
२०

जवाबों:


2

दृश्य फ़ील्ड मॉड्यूल आप विचारों के आधार तालिकाओं के रूप में क्षेत्र टेबल बेनकाब करने के लिए अनुमति देता है। यह दृश्य डिफ़ॉल्ट व्यवहार से अलग है कि आधार तालिका फ़ील्ड तालिका है, न कि एक इकाई जिसके लिए फ़ील्ड डेटा फिर से लोड किया गया है। उदाहरण के लिए जब आप बेस टेबल के रूप में नोड का चयन करते हैं तो आप फ़ील्ड जोड़ सकते हैं, लेकिन क्वेरी में प्राथमिक (बेस टेबल) अभी भी नोड है जो आपके डेटा के आधार पर कुल कार्यों (उर्फ कुछ के एक-से-एक-एक संबंध) को खराब कर सकता है नोड को फ़ील्ड)।

दृश्य फ़ील्ड आपको फ़ील्ड तालिकाओं तक सीधे पहुंच की अनुमति देता है जिसका अर्थ है कि कुल कार्य ठीक से काम करते हैं। इसके अतिरिक्त यदि आपको अन्य क्षेत्रों के तालिकाओं में "दिलचस्प" करने की आवश्यकता है, तो आप निम्नलिखित का उपयोग करके उन्हें पूरी तरह से नियंत्रित कर सकते हैं।

/**
 * Implements hook_views_data_alter().
 */
function mymodule_views_data_alter(&$data) {
  views_field_add_multi_join($data, /* see docs */);
}

जो उपयोग करने के लिए काफी सरल है और आपको एक साथ कई फ़ील्ड तालिकाओं में समग्र कार्य करने की अनुमति देता है। फिर आप मैन्युअल रूप से एक दृश्य ला सकते हैं $view->execute()और परिणाम को दृश्य से बाहर खींच सकते हैं। विचार प्रलेखन में इसके उदाहरण हैं।

EntityFieldQuery पर इस दृष्टिकोण का लाभ यह है कि आप दृश्य में प्रक्रिया का प्रबंधन कर सकते हैं (जो लगभग हर कोई पहले से ही उपयोग कर रहा होगा) और इसे कम प्रत्यक्ष तरीके से भौतिक क्वेरी बिल्डिंग का प्रदर्शन करने की अनुमति देता है जो सड़क के नीचे संभावित टूटने में मदद करता है। इसके अलावा कई बार आप एक व्यवस्थापक स्क्रीन पर ऐसे समग्र डेटा प्रदर्शित करना चाहेंगे, जिसे आप अतिरिक्त प्रदर्शन के लिए कोड को प्रदर्शित करने और परिणामों तक पहुंचने के लिए दृश्य का उपयोग कर सकते हैं।


मुझे इसकी जाँच करनी होगी। मैं क्वेरी को मैन्युअल रूप से करने के बजाय अपने कोड को अपने कंप्यूटेड फ़ील्ड में स्वैप कर सकता था। मैं शायद उस साइट पर काम कर रहा हूं, जहां मुझे जल्द ही इसकी आवश्यकता है और कुछ बिंदु पर वापस रिपोर्ट करेंगे। अगर यह काम करता है, तो मैं स्वीकार करूंगा।

0

क्या इसे ऐड-ऑन मॉड्यूल में देखा जा सकता है? यह प्रश्नों को बहुत अच्छी तरह से संभालता है और कुछ परिणाम समग्र कार्यों के साथ प्रकाशित होते हैं जैसे कि कार्रवाई में जब प्रासंगिक फ़िल्टर विफल हो जाते हैं जहां यह सभी मूल्यों के लिए डिफ़ॉल्ट हो सकता है और प्रत्येक में उपलब्ध परिणामों पर मायने रखता है। प्रश्नों के लिए कार्य होने चाहिए, लेकिन इसके लिए UI फॉर्म की आवश्यकता होगी। मुझे पता है अगर यह समझ में आता है। मैं सिर्फ विचारों को खंडित कर रहा हूं और अटकलें लगा रहा हूं।


COUNT क्वेरीज़ को संस्थाओं पर चलाया जा सकता है, इसलिए यह हल है। मैं खुद एसयूएम में ज्यादा दिलचस्पी रखता हूं। view_calc अंतर्दृष्टि प्रदान कर सकता है, लेकिन मैं एक गणना फ़ील्ड में मान का उपयोग करना चाहता हूं ... जिसे मैं view_get_view_result (या समान) के साथ अच्छी तरह से कर सकता था। हालाँकि, उस क्वेरी को पहली बार में उत्पन्न करने के लिए दृश्य प्राप्त करना चाल है। ऐसा लगता है कि hackish तरीका सबसे अच्छा हो सकता है। मुझे लगता है कि मैं इसके साथ शुरू करूंगा क्योंकि अगर मैं इसे जारी नहीं करता हूं, तो मैं सुनहरा हो जाऊंगा। अगर मैं करता हूं, तो कोई उम्मीद से पैच जमा करेगा।
विघ्न
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.