it-swarm.com.de

Wie greife ich auf eine Knotenobjekteigenschaft zu, wenn es sich um ein Array handelt?

$node = \Drupal\node\Entity\Node::load($nid);

Nachdem ich ein Knotenobjekt in Drupal 8) geladen habe, weiß ich, wie ich auf eine Eigenschaft zugreifen kann, wenn es sich um einen einzelnen Wert handelt, und sie im folgenden Beispiel einer Variablen $test Zuweisen kann ::

$test = $node->field_1->value;

Wenn $node->field_1 Ein Array enthält, wie kann ich darauf zugreifen, damit ich es $test Zuweisen kann? Also würde $test So etwas wie:

array(0 => 'apples', 1 => 'oranges')
5
dbj44

Es ist nicht wirklich erforderlich, es in ein Array zu konvertieren, da Sie bereits als Array auf Mitglieder eines FieldItemList zugreifen können:

$first = $node->field_1[0]->value;
$next = $node->field_1[1]->value;

Diese:

$node->field_1->value;

Ist sowieso nur eine Verknüpfung zum ersten Element in der Sammlung (siehe FieldItemList::__get() ).

Wenn Sie die Werte genau in dem von Ihnen angegebenen Format benötigen, ist FieldItemList auch iterierbar:

foreach ($node->field_1 as $delta => $item) {
  $an_array[$delta] = $item->value;
}
9
Clive