workspaceManager = $workspaceManager; $this->entityTypeManager = $entityTypeManager; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container) { return new static( $container->get('workspaces.manager'), $container->get('entity_type.manager') ); } /** * {@inheritdoc} */ public function validate($value, Constraint $constraint) { if ($this->workspaceManager->getActiveWorkspace()->isDefaultWorkspace()) { return; } $target_entity_type_id = $value->getFieldDefinition()->getFieldStorageDefinition()->getSetting('target_type'); $target_entity_type = $this->entityTypeManager->getDefinition($target_entity_type_id); if ($value->hasNewEntity() && !$this->workspaceManager->isEntityTypeSupported($target_entity_type)) { $this->context->addViolation($constraint->message, ['%collection_label' => $target_entity_type->getCollectionLabel()]); } } }