Bagaimana cara mendapatkan nilai-nilai bidang paragraf?


12

Saya ingin membuat daftar produk di drupal dan mengirimkannya di layanan web. Untuk ini saya membuat jenis entitas dengan paragraf untuk setiap produk. Bagaimana saya bisa memuat paragraf dan mengakses bidangnya? Sampai sekarang saya hanya melihat target_id dan target_revision_id produk. Terima kasih!

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

Hasil:

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

Jawaban:


13

Anda harus dapat menyertakan kelas entitas Paragraf, dan gunakan Paragraph::load($entity_id)untuk memuatnya.

Contoh:

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

Saya tahu ini sudah tua, tetapi mungkin bisa membantu untuk masa depan. Untuk memuat entitas yang dirujuk oleh entitas Node, Anda dapat menggunakan entityproperti. Sebagai contoh, pertimbangkan kode berikut:

$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;
}

Jadi tidak perlu memuat entitas dengan id entitas, Anda cukup menggunakan ->entityproperti pengguna dari daftar entitas yang direferensikan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.