নোট করুন যে গৃহীত উত্তরটি বিশেষভাবে নোড সত্তাগুলির ক্ষেত্রে প্রযোজ্য তবে সমস্ত সত্তার বান্ডিল রয়েছে। অনেকগুলি সত্তা, যেমন user
বা menu_link_content
(কাস্টম মেনু লিঙ্কগুলির জন্য) কেবলমাত্র একটি বান্ডিল থাকে যা সত্তার টাইপের সাথে খোদাই করে।
entity_type.bundle.info
সেবা দ্বারা বাস্তবায়িত Drupal এর \ কোর \ সত্তা \ EntityTypeBundleInfo , সত্তা বান্ডিল তথ্যে অ্যাক্সেস প্রদান করে। এর পদ্ধতিগুলি getAllBundleInfo()
এবং getBundleInfo($entity_type_id)
যথাক্রমে সত্তা টাইপ এবং বান্ডিল মেশিনের নাম অনুসারে একটি অ্যারে ফিরিয়ে দেয়, পূর্ববর্তীটি বান্ডেল মেশিনের নাম দ্বারা কীড বান্ডিলগুলির একটি অ্যারে ধারণ করে। প্রতিটি বান্ডিলটির একটি label
অনুবাদকৃত বান্ডিল বন্ধুত্বপূর্ণ নাম রয়েছে।
নীচে এমন একটি উদাহরণ দেওয়া আছে যা সামগ্রী সামগ্রীর মেশিনের নাম, লেবেল, বান্ডিল মেশিনের নাম এবং বান্ডিল লেবেলের মধ্যে পার্থক্য দেখায়। কোডটি ধরে নিয়েছে যে একটি আইডির সাথে কমপক্ষে একটি কাস্টম মেনু লিঙ্ক রয়েছে 1
। এটি article
নোডের ধরণ (বান্ডিল) রয়েছে বলেও ধরে নিয়েছে 1
, এর আইডি সহ কমপক্ষে একটি নোড রয়েছে এবং নোডটি নোড টাইপের (বান্ডিল) হয় article
।
<?php
$entity_type_manager = \Drupal::entityTypeManager();
$bundle_info = \Drupal::service("entity_type.bundle.info")->getAllBundleInfo();
$current_user = \Drupal::currentUser()->getAccount();
// Prints "user".
print $current_user->getEntityTypeId() . PHP_EOL;
// Prints "User".
print $current_user->getEntityType()->getLabel() . PHP_EOL;
// Prints "user".
print $current_user->bundle() . PHP_EOL;
// Prints "User".
print $bundle_info[$current_user->getEntityTypeId()][$current_user->bundle()]['label'] . PHP_EOL;
$my_menu_link = $entity_type_manager->getStorage('menu_link_content')->load(1);
// Prints "menu_link_content".
print $my_menu_link->getEntityTypeId() . PHP_EOL;
// Prints "Custom menu link".
print $my_menu_link->getEntityType()->getLabel() . PHP_EOL;
// Prints "menu_link_content".
print $my_menu_link->bundle() . PHP_EOL;
// Prints "Custom menu link".
print $bundle_info[$my_menu_link->getEntityTypeId()][$my_menu_link->bundle()]['label'] . PHP_EOL;
$my_article = $entity_type_manager->getStorage('node')->load(1);
// Prints "node".
print $my_article->getEntityTypeId() . PHP_EOL;
// Prints "Content".
print $my_article->getEntityType()->getLabel() . PHP_EOL;
// Prints "article".
print $my_article->bundle() . PHP_EOL;
// Prints "Article".
print $bundle_info[$my_article->getEntityTypeId()][$my_article->bundle()]['label'] . PHP_EOL;
ক্লাসের স্থিতিশীল পদ্ধতিগুলির উপর নির্ভর না করে আপনার কোডে যেখানে সম্ভব সেখানে নির্ভরতা ইনজেকশন ব্যবহার নিশ্চিত করুন Drupal
।