Come ottenere una matrice di ID entità referenziati da un campo di riferimento entità


10

Ho un entity_referencecampo con BaseFieldDefinition::CARDINALITY_UNLIMITEDcardinalità. Voglio un elenco di ID entità referenziati. So che posso ottenere tutte le entità referenziate chiamando $x->referencedEntities(), ma voglio solo gli ID per caricare le entità in seguito. Attualmente sto facendo questo:

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

Qualcuno conosce una soluzione migliore come era in D7 (-> raw ())?

Grazie

Risposte:


24

In alternativa puoi farlo su una riga con una funzione array anziché un loop:

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

Modifica: utilizzare getValue()per ottenere solo l'array del campo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.