ভোকাবুলারি আইডি (id vid) কোথায় পাব?


24

ড্রুপাল In-এ আমি আমার / অ্যাডমিনের বিভাগের বিভাগে যাব এবং আমি ইউআরএলটিতে id vid (সংখ্যাসূচক) খুঁজে পেতে সক্ষম হব।

ড্রুপাল In (সত্তা হিসাবে পদ শর্তাদি প্রবর্তনের কারণে সন্দেহ নেই) ইউআরএল আর শব্দচোষী (এবং কেউ কেউ ক্লিনার বলবে) হিসাবে দেখা যাচ্ছে না কারণ এটি এখন ভোকাবুলারিটির মেশিনের নাম (বান্ডেলের নাম?) দেখায় যেমন এটি দেখা যায় admin/structure/taxonomy/my_vocabulary/edit

আমার শেষ গেমটি আমার শব্দভাণ্ডারটি লোড করতে ট্যাক্সোনমি_জেট_ট্রি ($ vid, $ পিতামাতা, $ ম্যাক্স_ডেপথ, $ লোড_সেন্টিটি) ব্যবহার করা এবং এটির সাথে মহিমান্বিত এবং প্রচুর উপায়ে কাজ করা, তবে হায় এই ফাংশনটি কোনও মেশিন_নাম গ্রহণ করে না তবে সম্ভবত সংখ্যাকে পছন্দ করে $vid

আমি একটি সম্পূর্ণ ভোকাব ট্রি লোড করার বিকল্প গ্রহণ করব (অর্থাত্ সমস্ত পদ এবং একে অপরের সাথে তাদের সম্পর্ক), তবে আমি মনে করি ভবিষ্যতে প্রজন্মের গুগলে এই প্রশ্নের সরাসরি উত্তর দেওয়া উচিত।


শুধু অনুমান কিন্তু ডেভেল মডিউল?
জেরেমি ফরাসি

উত্তর:



10

মানুকে অনুসরণ করে, যদি আপনার কাছে কমান্ড লাইন ড্রাশ অ্যাক্সেস থাকে তবে আপনি এটি করতে পারেন:

ড্রপ পিএইচপি-ইভাল '$ ট্যাক্স = ট্যাক্সোনমি_ভোকেবুলারি_ম্যাচাইন_নাম_লোড ("মূল_সাইট_ কাঠামো"); প্রতিধ্বনি $ কর-> ভিড;'

woa, একটি drush সমাধান প্রত্যাশিত না :) spicening (এবং প্রসার) এই প্রশ্ন & উত্তরের জন্য ধন্যবাদ
electblake

1

আমি আমার ভোকাব অবজেক্টটি লোড করার জন্য সত্তা_লোড () ব্যবহার করছি এবং এটির $ vid পেয়েছি।

কৌশলটি হ'ল false২ য় প্যারামিটারগুলি (যা হয় $ids) এবং তারপরে taxonomy_vocabularyশর্ত হিসাবে আপনি কী পাস করতে পারবেন তা দেখতে আপনার মাইএসকিএল ডাটাবেজে সারণিটি উল্লেখ করুন । machine_nameআপনি নীচের দেখতে পারেন হিসাবে আমি ব্যবহার করতে পছন্দ করেছেন:

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

যদি আপনি দ্রুত / লাইটার উপায় সম্পর্কে জানেন তবে দয়া করে এখানে এটি সরবরাহ করুন :)


1
এন্টিফিল্ডকিউরি ব্যবহার করুন। $ শর্তগুলি অবচিত, এবং আরও সীমাবদ্ধ।
বোজন জিভানোভিচ

এবং তাই তারা হয় :) একটি সম্পূর্ণ উত্তর জমা দিতে যত্নশীল? যদি না অনুমান করি আমি এই প্রশ্নটি সম্পূর্ণ / বন্ধ করার জন্য এখানে কিছু জমা দেব।
ইলেক্টব্লেক

1

আপনি {taxonomy_vocabulary}ডাটাবেসে টেবিলটি ম্যানুয়ালি ব্যবহার করতে পারেন এবং তারপরে vidকলামটি পরীক্ষা করতে পারেন ।


1

ডি 7 এ

আপনার যা যা প্রয়োজন তা হ'ল ভোকাবুলারি আইডি (ভিডি) এবং আপনি যদি মেশিনের নাম জানেন তবে আপনি ব্যবহার করতে পারেন:

$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

আমার পক্ষে দ্রাশের মাধ্যমে সমস্ত ভোকাবুলারি আইডির একটি তালিকা দেখার জন্য এটি ছিল দ্রুততম উপায়:

  1. ড্রশ কমান্ডের সাহায্যে আপনার ডাটাবেসের সাথে সংযুক্ত করুন
    শ্রাবণ sqlc
  2. মাইএসকিএল প্রম্পটে টাইপ করুন
    ট্যাক্সোনমি_ভোকেবুলারি থেকে * নির্বাচন করুন;
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.