Làm cách nào để có được một mảng các id thực thể được tham chiếu từ trường tham chiếu thực thể


10

Tôi có một entity_referencelĩnh vực với BaseFieldDefinition::CARDINALITY_UNLIMITEDcardinality. Tôi muốn một danh sách các id thực thể được tham chiếu. Tôi biết rằng tôi có thể nhận được tất cả các thực thể được tham chiếu bằng cách gọi $x->referencedEntities(), nhưng tôi chỉ muốn các id nhận được các thực thể được tải sau đó. Hiện tại tôi đang làm điều này:

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

Có ai biết một giải pháp tốt hơn như trong D7 (-> raw ()) không?

Cảm ơn

Câu trả lời:


23

Để thay thế, bạn có thể thực hiện nó trong một dòng với hàm mảng thay vì vòng lặp:

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

Chỉnh sửa: Sử dụng getValue()để chỉ lấy mảng của trường.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.