metadata = $metadata; } public function process(Params $params): void { if ($params->getType() !== Type::MANY_TO_MANY) { return; } $foreignEntityType = $params->getForeignEntityType(); $entityType = $params->getEntityType(); if (!$foreignEntityType || !$entityType) { return; } if ( $params->getEntityType() === User::ENTITY_TYPE && $params->getForeignLink() === self::LINK_NAME ) { $this->processInternal($foreignEntityType); return; } if ( $params->getForeignEntityType() === User::ENTITY_TYPE && $params->getLink() === self::LINK_NAME ) { $this->processInternal($entityType); return; } } private function processInternal(string $entityType): void { $fieldType = $this->metadata->get(['entityDefs', $entityType, 'fields', self::LINK_NAME, 'type']); if ($fieldType !== 'linkMultiple') { return; } $this->metadata->set('entityDefs', $entityType, [ 'fields' => [ self::LINK_NAME => [ 'view' => 'views/fields/assigned-users', ], ] ]); $this->metadata->save(); } }