কোন সত্তা থেকে আইটেমগুলি পাওয়ার উপযুক্ত উপায় কী?


9

দ্রুপাল 8-এ সত্তা তৈরির জন্য এপিআই উদাহরণগুলি খুঁজতে আমার সমস্যা হয়েছিল।

আমি আইটেমগুলি পেতে একটি কোয়েরি লিখে শেষ করেছি।

$query = $this->database->select('entity_subqueue__items', 'esi')
  ->fields('esi', array('items_target_id'))
  ->condition('esi.bundle', $name_of_queue)
  ->orderBy('delta', 'ASC');

$nids = $query->execute()->fetchCol();

তবে আমি যদি সম্ভব হয় তবে বিল্ট ইন ফাংশনটি ব্যবহার করতে চাই। সত্তা সারি থেকে আইটেমগুলি পুনরুদ্ধার করার জন্য ফাংশনটি কোথায়?


ডি 7 - \ দ্রুপাল :: কিউ ('আমার সারি') -> দ্য আইটেম ()

আমি এক হিসাবে মনে করি না। একটি টেবিলের সারি রয়েছে, এটি ডাটাবেসকুইউ অবজেক্টটি ব্যবহার করে। এটি সত্তা মডিউল। আমি আপনার উদাহরণটি চেষ্টা করেছি, এবং এটি কার্যকর হয় না, এবং কোডটি খনন করে দেখে মনে হচ্ছে ডাটাবেসকিউ অবজেক্টটি "নাম" এর মতো কলামযুক্ত একটি টেবিলের দিকে তাকিয়ে আছে যা সত্তা_সুবিউ__ইয়েটস টেবিল থেকে নিখোঁজ রয়েছে।
Oknate

আহ দুঃখিত, আমি সত্তা মডিউলটি ব্যবহার করি না।

উত্তর:


12

প্রদত্ত id sidটি আপনার subqueue আইডি:

$entity_subqueue = \Drupal::entityManager()->getStorage('entity_subqueue')->load($sid);

Subqueue বস্তু লোড। আপনি আপনার সত্তা পুনরুদ্ধার করতে বা আপডেট করতে এটি হেরফের করতে পারেন।

আইটেমগুলি পেতে:

$items = $entity_subqueue->get('items')->getValue();

আইটেমগুলি আপডেট করতে, $ আইটেম অ্যারেতে অন্য আইটেম যুক্ত করুন এবং তারপরে সত্তা অবজেক্টটি সংরক্ষণ করুন:

$items[] = ['target_id' => 69];

$entity_subqueue->set('items', $items);

$entity_subqueue->save();

ভাল খবর!

আপনার সত্তা সারি আপডেট হয়েছে যে ডাটাবেস আপনি পরীক্ষা করতে পারেন:

select * from entity_subqueue__items where bundle = :sid;

আমি আরও যোগ করতে চাই যে ড্রুপাল 8: কনফিগার পৃষ্ঠাগুলি মডিউলটিতে সত্তা ব্যবহারের জন্য একটি দুর্দান্ত বিকল্প রয়েছে । এটি আপনাকে সত্তা বান্ডিলগুলি তৈরি করতে দেয় যা কেবলমাত্র একটি সত্তা রয়েছে। তারপরে আপনি সত্তা রেফারেন্স ক্ষেত্রগুলি সহ আপনার পছন্দ মতো কোনও ক্ষেত্রের জুড়তে পারেন। আমি সম্প্রতি একটি প্রকল্পে সত্তা রেফারেন্স ক্ষেত্রের সাথে একটি কনফিগার পৃষ্ঠা সহ একটি সত্তা সারি প্রতিস্থাপন করেছি এবং আমি ব্যবহারকারীর অভিজ্ঞতাকে প্রাধান্য দিয়েছি।


0

সাবকিউ লোড করার জন্য একটি শর্টকাটও রয়েছে: \Drupal\entityqueue\Entity\EntitySubqueue::load($sid);

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.