Как получить массив ссылочных идентификаторов сущностей из поля ссылки на сущность

10

У меня есть entity_referenceполе с BaseFieldDefinition::CARDINALITY_UNLIMITEDкардинальностью. Я хочу список ссылочных идентификаторов сущностей. Я знаю, что могу получить все ссылочные объекты, вызвав их $x->referencedEntities(), но я хочу, чтобы только идентификаторы загружали объекты позже. В настоящее время я делаю это:

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

Кто-нибудь знает лучшее решение, как это было в D7 (-> raw ())?

Спасибо

Райнер Фейке
источник

Ответы:

24

В качестве альтернативы вы можете сделать это в одной строке с функцией массива вместо цикла:

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

Редактировать: Используйте getValue()только для получения массива поля.

4k4
источник