mutual_credit-5.0.x-dev/modules/bursers/src/Plugin/Field/FieldType/BurserReferenceFieldItemList.php
modules/bursers/src/Plugin/Field/FieldType/BurserReferenceFieldItemList.php
<?php namespace Drupal\mcapi_bursers\Plugin\Field\FieldType; use Drupal\Core\Field\EntityReferenceFieldItemList; /** * Represents a Burser reference field list */ class BurserReferenceFieldItemList extends EntityReferenceFieldItemList { /** * {@inheritdoc} * Ensure the list excludes wallet owner and duplicates. */ public function setValue($values, $notify = TRUE) { parent::setValue($values, $notify); $holder = $this->getEntity()->getHolder(); $owner_id = ($holder->getEntityTypeId() == 'user') ? $holder->id() : $holder->getOwnerId(); $already[] = $owner_id; foreach ($this->list as $delta => $item) { if (in_array($item->target_id, $already)) { unset($this->list[$delta]); $this->list = array_values($this->list); } $already[] = $item->target_id; } } }