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


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()только для получения массива поля.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.