So erhalten Sie ein Array referenzierter Entitäts-IDs aus einem Entitätsreferenzfeld

10

Ich habe ein entity_referenceFeld mit BaseFieldDefinition::CARDINALITY_UNLIMITEDKardinalität. Ich möchte eine Liste der referenzierten Entitäts-IDs. Ich weiß, dass ich alle referenzierten Entitäten durch Aufrufen $x->referencedEntities()abrufen kann, aber ich möchte, dass nur die IDs die Entitäten später laden. Derzeit mache ich das:

  $a = [];
  foreach ($entity->autoren as $v) {
    $a[] = $v->target_id;
  }
  $this->setCurrentAnwaltReferenzen($a);

Kennt jemand eine bessere Lösung wie in D7 (-> raw ())?

Vielen Dank

Rainer Feike
quelle

Antworten:

23

Alternativ können Sie dies in einer Zeile mit einer Array-Funktion anstelle einer Schleife tun:

$ids = array_column($entity->autoren->getValue(), 'target_id');

Bearbeiten: Verwenden Sie getValue()diese Option, um nur das Array des Felds abzurufen.

4k4
quelle