मैं कस्टम मॉड्यूल में तालिका कैसे बनाऊं


13

Drupal 7 में हमने hook_schema()एक टेबल बनाने के लिए। स्थापना फ़ाइल में उपयोग किया था। मेरा मानना ​​है कि, Drupal 8 में, आप ऐसा ही कर सकते हैं, लेकिन मैं इस धारणा के तहत था कि आपको अपने स्कीमा के साथ .yml फाइलें बनानी चाहिए।

Drupal 8 में टेबल बनाने की विधि क्या है?


3
नहीं, आप सही हैं। hook_schemaअभी भी Drupal 8 में कस्टम टेबल बनाने का तरीका है जो सामग्री संस्थाओं या क्षेत्रों द्वारा वर्णित नहीं हैं । यदि आपकी कस्टम टेबल कुछ ऐसी है जिस पर आप "सामग्री" पर विचार करेंगे, तो मैं संस्थाओं का उपयोग करूंगा, लेकिन अगर इसे तेज़ करने की आवश्यकता है और इसमें सीमित मात्रा में पंक्तियाँ होंगी और आप सामने के छोर पर कोई कैशिंग नहीं कर रहे हैं, तो एक कस्टम टेबल ठीक है। आपको यह भी विचार करना चाहिए कि क्या यह तालिका "कॉन्फ़िगरेशन" है, जिस स्थिति में कॉन्फ़िगरेशन इकाई या ऑब्जेक्ट जाने का रास्ता है।
22

जवाबों:


10

hook_schema()अभी भी Drupal 8 मॉड्यूल से उपयोग किया जाता है ताकि मॉड्यूल से कस्टम डेटाबेस तालिकाओं का उपयोग किया जा सके। यहां तक कि उपयोगकर्ता और नोड मॉड्यूल इसे लागू है, हालांकि user_schema()और node_schema()संबंधित संस्थाओं, जो एक अलग तरह से बनाया जाता है के लिए स्कीमा निर्धारित नहीं है।

विन्यास स्कीमा कस्टम डेटाबेस तालिकाओं एक मॉड्यूल का उपयोग करता है बनाने के लिए इस्तेमाल नहीं कर रहा है, लेकिन विन्यास फाइल की संरचना का वर्णन। मैंने जो डॉक्यूमेंटेशन लिंक किया है, उसमें मिली पीडीएफ फाइल एक कॉन्फ़िगरेशन फाइल और उसके स्कीमा के बीच के संबंध को स्पष्ट करती है।

स्क्रीनशॉट

सामग्री संस्थाओं का उपयोग नहीं करते hook_schema(); Drupal उनके लिए डेटाबेस तालिका बनाता है जो आधार फ़ील्ड पर आधारित है जिससे सामग्री इकाई वर्ग परिभाषित होता है।

मॉड्यूल का उपयोग करने के लिए कौन सी विधि निर्भर करती है। यह मॉड्यूल के लिए एक सामग्री इकाई, एक कॉन्फ़िगरेशन इकाई को परिभाषित करता है, या बस एक कस्टम तालिका का उपयोग करता है। एक मॉड्यूल भी उन सभी का उपयोग कर सकता है।


9

यदि आप वास्तव में चाहते हैं, तो आप अपनी खुद की तालिकाओं को बनाने के लिए हुक इंस्टॉल का उपयोग कर सकते हैं, हालांकि ड्रुपल के पास कई अन्य आउट-ऑफ-द-बॉक्स समाधान हैं। लेकिन यदि आप अपना स्वयं का रोल करना चाहते हैं, तो उदाहरण मॉड्यूल में dbtng_example नामक एक उदाहरण मॉड्यूल है: https://www.drupal.org/project/examples , अपने कस्टम डेटाबेस प्रविष्टियों को जोड़ने और निकालने के लिए मार्ग के साथ पूर्ण।

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

एक अन्य दृष्टिकोण पर विचार करने के लिए एक कॉन्फ़िगरेशन इकाई या सामग्री इकाई बनाना है।

यदि आप ड्रुपल कमांड लाइन टूल का उपयोग करते हैं, तो इन "ड्रुपल जेनरेट: एंटिटी: कॉन्फिगर", और "ड्रुपल जेनरेट: एंटिटी: कंटेंट" को जेनरेट करने के लिए भी एक कमांड है।

उदाहरण मॉड्यूल में भी, config_entity_example और content_entity_example है।

से https://www.previousnext.com.au/blog/understanding-drupal-8s-config-entities : "सामग्री और config संस्थाओं के बीच मुख्य अंतर (समय) वे कैसे जमा हो जाती है और config संस्थाओं fieldable नहीं हैं "।

कुछ और बॉक्स समाधान हैं, जैसे कि config_pages मॉड्यूल जो आपको अपनी साइट पर डेटा संग्रहीत करने के लिए आसानी से स्थानों को स्पिन करने की अनुमति देता है: https://www.drupal.org/project/config_pages

हमने हाल ही में एक नियंत्रक और मार्ग बनाकर लैंडिंग पृष्ठों के लिए इनका उपयोग किया है। कस्टम तालिका पर इसका बहुत बड़ा लाभ है क्योंकि आप आसानी से नए फ़ील्ड जोड़ सकते हैं और आप डेटा प्रकारों जैसे छवियों और इकाई संदर्भों का आसानी से उपयोग कर सकते हैं, आप फ़ील्ड फ़ॉर्मेटर्स भी सेट कर सकते हैं, और config_pages निकाय व्यू बिल्डर का उपयोग करके डेटा स्वरूपित लोड कर सकते हैं।

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