উত্তর:
entity_load
@ নিখিল দ্বারা উল্লিখিত সত্তাটি লোড করতে ব্যবহার করুন ।
তারপরে বান্ডিলটি নিষ্কাশন করতে, সত্তা_পরিষ্কার_আইডি ব্যবহার করুন । উদাহরণ:
$entity = entity_load('node', array('7'));
list(, , $bundle) = entity_extract_ids('node', $entity);
echo "Bundle name is : " . $bundle;
ফাংশনটি এমন entity_extract_ids
একটি সংখ্যাযুক্ত সূচকযুক্ত অ্যারে (হ্যাশ টেবিল নয়) প্রদান করে:
যেখানে, 0
, 1
, এবং 2
অ্যারের সূচকগুলি হয়। যাইহোক, কোর এবং অবদান মডিউল দ্বারা ব্যবহৃত পদ্ধতির list()
ফাংশনটি ব্যবহার করা ।
list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
এখানে পরিষ্কার সেই যাকে আমি মডিউল কোড জৈব গ্রুপ থেকে পেয়েছিলাম।
$wrapper = entity_metadata_wrapper($entity_type, $entity_id);
$bundle = $wrapper->getBundle();
উদাহরণস্বরূপ আমি এটিকে কল করতে পারি:
$wrapper = entity_metadata_wrapper('node', 1);
$bundle = $wrapper->getBundle();
সম্পাদনা: @ ক্লাইভ হিসাবে উল্লেখ করা হয়েছে, উপরোক্ত পদ্ধতিটি সত্তা মডিউলের উপর নির্ভর করে।
এখানে আরও একটি পদ্ধতি যা কোনও অতিরিক্ত মডিউলের উপর নির্ভর করে না। এটি এখানে ব্যাখ্যা করা হয়েছে https://forrst.com/posts/Get_the_bundle_of_a_Drupal_7_entity-0xW
এই পদ্ধতিটি আটকে দেওয়ার অনুলিপি করুন:
function _entity_get_bundle($entity, $entity_type) {
$info = entity_get_info($entity_type);
if (empty($info['entity keys']['bundle'])) {
return $entity_type;
} else {
return $entity->{$info['entity keys']['bundle']};
}
}
$group_type, $gid
? এবং মূল্য কি $bundle
?
entity_load
এটির জন্য একই উপায় করতে পারেন , কীভাবে এটি সর্বোত্তম?
entity_metadata_wrapper()
চেয়ে পরিষ্কার entity_extract_ids()
। এছাড়াও আপনি ইনস্টল করা সত্তা মডিউলটির উপর নির্ভর করে ...
সত্তা_লোড চেষ্টা করুন
ডাটাবেস থেকে সত্তা লোড করুন।
সত্তাগুলি একটি স্ট্যাটিক মেমরি ক্যাশে সংরক্ষণ করা হয় এবং একই পৃষ্ঠা অনুরোধের সময় আবার লোড করা হলে ডাটাবেস অ্যাক্সেসের প্রয়োজন হবে না।
$ সত্তা_প্রকার : লোড করতে সত্তা টাইপ, যেমন নোড বা ব্যবহারকারী।
ids আইডিস : সত্তা আইডিগুলির একটি অ্যারে বা সমস্ত সত্ত্বাকে লোড করতে মিথ্যা।
$ শর্তাদি : (অবহেলিত) বেস টেবিলের শর্তগুলির একটি সহযোগী অ্যারে, যেখানে কীগুলি ডাটাবেস ক্ষেত্র এবং মানগুলি সেই ক্ষেত্রগুলির অবশ্যই মান must পরিবর্তে, এই ফাংশনটির দ্বারা লোডযোগ্য সত্তা আইডিগুলির একটি তালিকা পুনরুদ্ধার করতে এন্টিফিল্ডকিউরি ব্যবহার করা ভাল।
$ পুনরায় সেট করুন : অনুরোধ করা সত্তা ধরণের জন্য অভ্যন্তরীণ ক্যাশে পুনরায় সেট করতে হবে কিনা।
তাদের আইডি দ্বারা সূচিত সত্তা অবজেক্টগুলির একটি অ্যারে। যখন কোনও ফলাফল পাওয়া যায় না, একটি খালি অ্যারে ফিরে আসে।
নোড আইডি থেকে নোড টাইপ পেতে আপনি যদি খুব হালকা ওজনের উপায়, পারফরম্যান্স অনুযায়ী চান- আপনি নোড টেবিলে একটি সিলেক্ট কোয়েরি ব্যবহার করতে পারেন।
$type = db_query("SELECT type FROM {node} WHERE nid = :nid",
array(':nid' => $nid))->fetchField();
এইভাবে, আপনার সত্তা_ লোড ইত্যাদির সাহায্যে পুরো সত্তা হুক সিস্টেমটি চালানোর দরকার নেই ..
এটি ইনডেক্সড নোড আইডি ব্যবহার করে একক সিলেক্ট ক্যোয়ারী।