You are here

public function EntityReferenceSupportedNewEntitiesConstraintValidator::validate in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/workspaces/src/Plugin/Validation/Constraint/EntityReferenceSupportedNewEntitiesConstraintValidator.php \Drupal\workspaces\Plugin\Validation\Constraint\EntityReferenceSupportedNewEntitiesConstraintValidator::validate()
  2. 10 core/modules/workspaces/src/Plugin/Validation/Constraint/EntityReferenceSupportedNewEntitiesConstraintValidator.php \Drupal\workspaces\Plugin\Validation\Constraint\EntityReferenceSupportedNewEntitiesConstraintValidator::validate()

File

core/modules/workspaces/src/Plugin/Validation/Constraint/EntityReferenceSupportedNewEntitiesConstraintValidator.php, line 52

Class

EntityReferenceSupportedNewEntitiesConstraintValidator
Checks if new entities created for entity reference fields are supported.

Namespace

Drupal\workspaces\Plugin\Validation\Constraint

Code

public function validate($value, Constraint $constraint) {

  // The validator should run only if we are in a active workspace context.
  if (!$this->workspaceManager
    ->hasActiveWorkspace()) {
    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(),
    ]);
  }
}