web-dev-qa-db-fra.com

Comment obtenir un tableau d'ID d'entité référencés à partir d'un champ de référence d'entité

J'ai un champ entity_reference Avec une cardinalité BaseFieldDefinition::CARDINALITY_UNLIMITED. Je veux une liste des identifiants d'entité référencés. Je sais que je peux obtenir toutes les entités référencées en appelant $x->referencedEntities(), mais je veux uniquement que les identifiants obtiennent les entités chargées plus tard. Actuellement, je fais ceci:

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

Est-ce que quelqu'un connaît une meilleure solution comme elle l'était en D7 (-> raw ())?

Merci

10
Rainer Feike

Comme alternative, vous pouvez le faire sur une seule ligne avec une fonction tableau au lieu d'une boucle:

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

Modifier: utilisez getValue() pour obtenir uniquement le tableau du champ.

23
4k4