Como obter uma matriz de IDs de entidade referenciados de um campo de referência de entidade

10

Eu tenho um entity_referencecampo com BaseFieldDefinition::CARDINALITY_UNLIMITEDcardinalidade. Quero uma lista de IDs de entidade referenciados. Eu sei que posso obter todas as entidades referenciadas chamando $x->referencedEntities(), mas quero que apenas os IDs carreguem as entidades posteriormente. Atualmente estou fazendo isso:

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

Alguém conhece uma solução melhor como era em D7 (-> raw ())?

obrigado

Rainer Feike
fonte

Respostas:

23

Como alternativa, você pode fazer isso em uma linha com uma função de matriz em vez de um loop:

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

Editar: use getValue()para obter apenas a matriz do campo.

4k4
fonte