সমস্ত সামগ্রীর ধরণের তালিকা পান


10

একটি দ্রুপাল 8 সাইটে সংজ্ঞায়িত সমস্ত সামগ্রীর ধরণের তালিকা কীভাবে পাব?

ড্রুপাল 7-এ এটি ব্যবহৃত হত node_type_get_types(), তবে এটি অবহেলা করা হয়েছে।

আমি চেষ্টা করেছি Entity::loadMultiple()কিন্তু মনে হচ্ছে এটি কাজ করে না। আমি একটি কাস্টম ক্যোয়ারী তৈরি করার কথা ভাবছিলাম, তবে এটি কীভাবে ডাটাবেসে সঞ্চিত তা আমি জানি না।

উত্তর:


21

loadMultiple() এই জন্য ভাল হতে হবে:

$types = \Drupal::entityTypeManager()
  ->getStorage('node_type')
  ->loadMultiple();

16

আপনি নোডটাইপ শ্রেণি ব্যবহার করে সমস্ত নোডটাইপ সত্তা (কনফিগারেশন সত্তা) লোড করতে পারেন:

$node_types = \Drupal\node\Entity\NodeType::loadMultiple();
// If you need to display them in a drop down:
$options = [];
foreach ($node_types as $node_type) {
  $options[$node_type->id()] = $node_type->label();
}

2
স্ট্যাটিক loadMultiple(), load()এবং create()পদ্ধতিগুলির কৌশলটি হ'ল আপনি যে সত্তা টাইপ শ্রেণিটি ব্যবহার করতে চান সেগুলিতে তাদের কল করা, তারপরে এটি প্রকারটি এবং ব্যবহারগুলি চিত্রিত করে যা উপরেরটি গতিশীলভাবে করে। এটি সামান্য খাটো এবং ব্যবহার করা সহজ, তবে এটি সম্ভব হলে ইনজেকশন পরিষেবাগুলি ব্যবহার করার পরামর্শ দেওয়া হয়, সুতরাং কোনও পরিষেবা / নিয়ামক / প্লাগইনে আপনি সত্তার টাইপ ম্যানেজারটি ইনজেকশনের পরে এটি ব্যবহার করতে পারেন। সহজ (ইউনিট) পরীক্ষার জন্য অনুমতি দেয় তবে ফলাফল কমবেশি একই রকম হয়।
বারদির

1

এখানে আরও একটি ড্রুপাল সহায়ক ফাংশন রয়েছে যা 8.7 হিসাবে অবহেলিত নয়। node_type_get_names()আয়:

স্ট্রিং [] নোড টাইপ লেবেলের একটি অ্যারে, নোড টাইপ নামের দ্বারা কীড।

এপিআই ডক্স


আপনার যদি ফর্ম নির্বাচন (বা চেকবক্স) বিকল্পগুলি পূরণ করতে হয় তবে এটি সবচেয়ে সহজ সমাধান।
TytooF

0

node_type_get_names()ভবিষ্যতে যদি অবমূল্যায়নের ক্ষেত্রে সরবরাহ করা হয় (ব্যবহারের একটি দুর্দান্ত উদাহরণও array_map):

function node_type_get_names() {
  return array_map(function ($bundle_info) {
    return $bundle_info['label'];
  }, \Drupal::service('entity_type.bundle.info')
    ->getBundleInfo('node'));
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.