पैराग्राफ फ़ील्ड मान कैसे प्राप्त करें?


12

मैं ड्रुपल में एक उत्पाद सूची बनाना चाहता हूं और इसे एक webservice में भेजना चाहता हूं। इसके लिए मैंने प्रत्येक उत्पाद के लिए पैराग्राफ के साथ एक इकाई प्रकार बनाया। मैं पैराग्राफ को कैसे लोड कर सकता हूं और इसके खेतों तक पहुंच सकता हूं? अब तक मैं केवल उत्पाद का target_id और target_revision_id देखता हूं। धन्यवाद!

$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संस्थाओं की एक संदर्भित सूची में उपयोगकर्ता की संपत्ति है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.