फील्ड और फील्ड इंस्टेंस के बीच अंतर?


15

जब हम पथ पर जाते हैं /admin/structure/types/manage/article/fieldsऔर Add new fieldविकल्प या विकल्प का उपयोग करते हैं Add existing field, तो क्या वह क्षेत्र बनाता है, फ़ील्ड आवृत्ति बनाता है या फ़ील्ड इंस्टेंस संलग्न करता है? उनके बीच अंतर कैसे करें? तो, प्रोग्रामेटिक रूप से, जब field_create_field , field_create_instance और field_attach API का उपयोग करना हो?

फ़ील्ड API दस्तावेज़ीकरण में यह केवल व्यवस्थापक UI का उल्लेख करता है और कभी उस पथ के बारे में बात नहीं करता है जहां फ़ील्ड और फ़ील्ड इंस्टेंसेस दोनों बनाने के लिए। तो यह भ्रामक है। अगर मुझे समझ में भी नहीं आता, तो मुझे भी नहीं पता।


: यह यह रहस्यमय नहीं रखना चाहिए dikini.net/31.08.2010/...
क्लाइव

और सामान्य स्थिति में प्रत्येक फ़ील्ड जिसे आप जोड़ते हैं, डेटाबेस में एक नया फ़ील्ड बनाता है और जब आप एक मौजूदा फ़ील्ड जोड़ते हैं, तो यह एक नई तालिका नहीं बनाता है जो इसे मौजूदा तालिका में जोड़ता है।
मोहम्मद शमीम

1
@ मोहम्मद शमीम, धन्यवाद फिर एक उदाहरण? उपयोग मामला क्या है? या बल्कि हम वास्तविकता में इसका उपयोग कहां करते हैं?
यूजीन गेरोम

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

1
इसलिए node/add/articleजिन क्षेत्रों को हम पथ पर देखते हैं वे फ़ील्ड इंस्टेंसेस (जो कई अलग-अलग इकाई प्रकारों में पुन: उपयोग किए जाते हैं) हैं। और रास्ते /admin/structure/types/manage/article/fieldsमें खेत ही खेत हैं। डेटाबेस में मुझे फ़ील्ड आवृत्ति तालिका नहीं दिखती है, लेकिन केवल फ़ील्ड_डेटा तालिका है, जो मुझे लगता है, हम तब प्राप्त करते हैं जब हम पहली बार /admin/structure/types/manage/article/fieldsउपयोग करके पथ पर एक फ़ील्ड बनाते हैं field_create_field। और फिर एक उदाहरण एक बंडल (इस मामले में लेख) से जुड़ा हुआ है जिसे हम पथ पर देखते हैं node/add/article
यूजीन गेरोम

जवाबों:


24

एक क्षेत्र ही एक क्षेत्र की मूल परिभाषा है। फ़ील्ड का उदाहरण उस फ़ील्ड का एक उदाहरण है, जो किसी इकाई / बंडल से जुड़ा होता है।

  1. फ़ील्ड field_create_field के साथ बनाए जाते हैं
  2. फ़ील्ड उदाहरण, field_create_instance के साथ

यह जाँचने के लिए कि क्षेत्र, या उदाहरण मौजूद है या नहीं

  1. field_info_field या
  2. field_info_instance

जब आप UI के माध्यम से एक फ़ील्ड बनाते हैं, तो Drupal हमेशा उस इकाई / बंडल पर एक फ़ील्ड उदाहरण बनाता है।

यदि आप एक मौजूदा फ़ील्ड जोड़ रहे हैं, तो फ़ील्ड डेटा को क्लोन किया जाता है और नई इकाई / बंडल पर फ़ील्ड इंस्टेंस बनाया जाता है।

अंतिम रूप से, फ़ील्ड सेटिंग्स वैश्विक रूप से उस फ़ील्ड पर लागू होती हैं, फ़ील्ड आवृत्ति सेटिंग्स इकाई बंडलों के बीच भिन्न हो सकती हैं।


2
बहुत बहुत धन्यवाद, आपने मेरी शंकाओं को दूर किया। अगर मुझे विशेषाधिकार होता तो मैं आपकी पोस्ट को +1 कर देता।
यूजीन गेरोम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.