मुझे शब्दावली आईडी ($ vid) कहां मिलेगी?


24

Drupal 6 में मैं अपने / व्यवस्थापक के वर्गीकरण अनुभाग में जाऊंगा और मैं URL में $ vid (संख्यात्मक) का पता लगा सकूंगा।

Drupal 7 में (संस्थाओं के रूप में शर्तों के परिचय के कारण कोई संदेह नहीं है) URL अब क्रिया के रूप में नहीं है (और कुछ क्लीनर कहेंगे) क्योंकि यह अब शब्दावली का मशीन नाम (बंडल नाम?) दिखाता है क्योंकि इसे देखा जा सकता है? admin/structure/taxonomy/my_vocabulary/edit

मेरी शब्दावली को लोड करने के लिए मेरा एंड-गेम टैक्सोनॉमी_गेट_ट्री ($ vid, $ पैरेंट, $ max_depth, $ load_entities) का उपयोग करना है और इसके साथ शानदार और भरपूर तरीके से काम करना है, लेकिन यह फ़ंक्शन मशीन_नाम को स्वीकार नहीं करता है, लेकिन संभवतः संख्यात्मक रूप से पसंद करता है $vid

मैं एक पूर्ण स्वर वृक्ष (यानी सभी शब्द और एक दूसरे से उनके रिश्ते) को लोड करने के विकल्पों को स्वीकार करूंगा, लेकिन मुझे लगता है कि इस सवाल का उत्तर सीधे भावी पीढ़ियों को Google को देना चाहिए।


सिर्फ एक अनुमान है, लेकिन क्या है?
जेरेमी फ्रांसीसी

जवाबों:



10

मनु के बाद, यदि आपके पास कमांड लाइन ड्रश एक्सेस है, तो आप कर सकते हैं:

drush php-eval '$ tax = taxonomy_vocabulary_machine_name_load ("main_site_structure"); गूंज $ कर-> vid;'

woa, ड्रश सॉल्यूशन की उम्मीद कभी नहीं की गई :) स्पिकिंग (और चौड़ीकरण) के लिए धन्यवाद यह प्रश्न और उत्तर
इलेक्ट्रबल

1

मैं अपने वोकैब ऑब्जेक्ट को लोड करने और $ vid को पुनः प्राप्त करने के लिए Unit_load () का उपयोग कर रहा हूं ।

चाल को false2 मापदंडों (जो है $ids) के लिए पास करना है और फिर taxonomy_vocabularyअपने mysql डेटाबेस में तालिका देखें कि आप किन स्थितियों में गुजर सकते हैं। मैंने machine_nameआपको नीचे दिए गए उपयोग के लिए चुना है :

$ids = false;
$conditions = array('machine_name' => 'my_vocabulary');
$vocab = entity_load('taxonomy_vocabulary', $ids, $conditions);

यदि आप जल्दी / हल्के तरीके से जानते हैं तो कृपया इसे यहाँ प्रस्तुत करें :)


1
EntityFieldQuery का उपयोग करें। $ स्थितियां पदावनत हैं, और अधिक सीमित हैं।
Bojan Zivanovic

और इसलिए वे :) एक पूर्ण जवाब प्रस्तुत करने के लिए परवाह है? यदि मुझे नहीं लगता कि मैं इस प्रश्न को पूरा / बंद करने के लिए यहाँ कुछ प्रस्तुत करूँगा।
इलेक्टेकलेक

1

आप {taxonomy_vocabulary}डेटाबेस में तालिका को मैन्युअल रूप से जांचने के लिए उपयोग कर सकते हैं , और फिर vidस्तंभ की जांच कर सकते हैं ।


1

डी 7 में

यदि आप सभी की जरूरत शब्दावली आईडी (vid) है और आप मशीन का नाम जानते हैं, तो आप उपयोग कर सकते हैं:

$query = db_select('taxonomy_vocabulary', 'tv');
$query->fields('tv', array('vid'));
$query->condition('tv.machine_name', __VOCAB_MACHINE_NAME, '=');
$result = $query->execute();
$data = $result->fetchAssoc();
$vid = $data['vid'];

छोटे प्रदर्शन में वृद्धि: ~ 0.0036489963531494 सेकंड से ~ 0.00030779838562012 सेकंड।

यह, निश्चित रूप से, आवश्यकतानुसार सिलवाया जा सकता है। बस इस शर्त को बदलें कि आपके पास क्या जानकारी है।


0

यह इकाई फ़ील्ड क्वेरी का उपयोग करते हुए लोड करने के लिए है जैसा कि बोजन उल्लेख:

$query = new entityFieldQuery();
$result = $query
  ->entityCondition('entity_type', 'taxonomy_vocabulary')
  ->propertyCondition('machine_name', 'my_vocabulary')
  ->execute();

if (empty($result['taxonomy_vocabulary'])) {
  return;
}

$vocabularies = taxonomy_vocabulary_load_multiple(array_keys($result['taxonomy_vocabulary']));
dpm($vocabularies);

0

Drush के माध्यम से सभी शब्दावली आईडी की सूची देखने के लिए यह मेरे लिए सबसे तेज़ तरीका था:

  1. Drush कमांड के साथ अपने डेटाबेस से कनेक्ट करें
    शराबी वर्ग
  2. Mysql प्रॉम्प्ट पर टाइप करें
    taxonomy_vocabulary से * सेलेक्ट करें;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.