Jak uzyskać tablicę identyfikatorów encji, do których istnieją odniesienia, z pola referencji encji

10

Mam entity_referencepole o BaseFieldDefinition::CARDINALITY_UNLIMITEDliczności. Chcę listę identyfikatorów encji, do których istnieją odniesienia. Wiem, że mogę uzyskać wszystkie encje, do których się odwołuję $x->referencedEntities(), dzwoniąc , ale chcę tylko identyfikatory, aby encje zostały załadowane później. Obecnie robię to:

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

Czy ktoś zna lepsze rozwiązanie, takie jak w D7 (-> raw ())?

Dzięki

Rainer Feike
źródło

Odpowiedzi:

24

Alternatywnie możesz to zrobić w jednym wierszu z funkcją tablicy zamiast w pętli:

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

Edycja: Użyj, getValue()aby uzyskać tylko tablicę pola.

4k4
źródło