অনুচ্ছেদ ক্ষেত্রের মানগুলি কীভাবে পাবেন?


12

আমি ড্রুপালে একটি পণ্য তালিকা তৈরি করতে এবং এটি একটি ওয়েব সার্ভিসে প্রেরণ করতে চাই। এর জন্য আমি প্রতিটি পণ্যের অনুচ্ছেদে একটি সত্তা টাইপ তৈরি করেছি। আমি কীভাবে অনুচ্ছেদটি লোড করতে পারি এবং এর ক্ষেত্রগুলি অ্যাক্সেস করতে পারি? এখন অবধি আমি কেবলমাত্র পণ্যের লক্ষ্য_আইডি এবং লক্ষ্য_রভিজন_আইডিটি দেখতে পাচ্ছি। ধন্যবাদ!

$nodestorage = \Drupal::entityManager()->getStorage('node');
$productslist = $nodestorage->loadUnchanged(9)->toArray();
foreach($productslist['field_products'] as $prod) {
  debug($prod);
}

ফলাফল:

Array
(
  [target_id] => 1
  [target_revision_id] => 3
)

উত্তর:


13

আপনার অনুচ্ছেদে সত্তা শ্রেণিটি অন্তর্ভুক্ত করতে সক্ষম হওয়া উচিত এবং Paragraph::load($entity_id)এটি লোড করার জন্য ব্যবহার করা উচিত।

উদাহরণ:

use Drupal\paragraphs\Entity\Paragraph;

$paragraph = Paragraph::load($target_id);
$foo = $paragraph->field_name->value;

10
$paragraph = Paragraph::load($target_id);
// Paragraph type could be also useful.
$prgTypeId = $paragraph->getType();
/** @var \Drupal\Core\Field\EntityReferenceFieldItemList $prgMediaField */
$prgMediaField = $paragraph->get('field_media');
$prgMediaFieldValue = $prgMediaField->getValue();

9

আমি জানি এটি পুরানো, তবে ভবিষ্যতের জন্য সহায়ক হতে পারে। নোড সত্তা দ্বারা রেফারেন্সিত সত্তাগুলি লোড করতে আপনি entityসম্পত্তিটি ব্যবহার করতে পারেন । উদাহরণস্বরূপ, নিম্নলিখিত কোডটি বিবেচনা করুন:

$nodestorage = \Drupal::entityManager()->getStorage('node');
$node = $nodestorage->loadUnchanged(9);

foreach ($node->field_products as $product) {

  /** @var Entity (i.e. Node, Paragraph, Term) $referenced_product **/
  $referenced_product = $product->entity;

  // Use now the entity to get the values you need.
  $field_value = $referenced_product->field_name->value;
}

সুতরাং সত্তা আইডি দ্বারা কোনও সত্তা লোড করার দরকার নেই, আপনি কেবল ->entityসত্ত্বার একটি রেফারেন্সযুক্ত তালিকার উপরে ব্যবহারকারীর সম্পত্তি।

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