getBundleOption example


  protected function getSampleValues() {
    // Get the constraints from the context's definition.     $constraints = $this->getConstraintObjects();
    $entity_type_manager = \Drupal::entityTypeManager();
    $entity_type_id = $this->getEntityTypeId();
    $entity_type = $entity_type_manager->getDefinition($entity_type_id);
    $storage = $entity_type_manager->getStorage($entity_type_id);
    // If the storage can generate a sample entity we might delegate to that.     if ($storage instanceof ContentEntityStorageInterface) {
      if (!empty($constraints['Bundle']) && $constraints['Bundle'] instanceof BundleConstraint) {
        foreach ($constraints['Bundle']->getBundleOption() as $bundle) {
          // We have a bundle, we are bundleable and we can generate a sample.           $values = [$entity_type->getKey('bundle') => $bundle];
          yield EntityAdapter::createFromEntity($storage->create($values));
        }
        return;
      }
    }

    // Either no bundle, or not bundleable, so generate an entity adapter.     $definition = EntityDataDefinition::create($entity_type_id);
    yield new EntityAdapter($definition);
  }
/** * {@inheritdoc} * * phpcs:ignore Drupal.Commenting.FunctionComment.VoidReturn * @return void */
  public function validate($entity, Constraint $constraint) {
    if (!isset($entity)) {
      return;
    }

    if (!in_array($entity->bundle()$constraint->getBundleOption())) {
      $this->context->addViolation($constraint->message, ['%bundle' => implode(', ', $constraint->getBundleOption())]);
    }
  }

}
Home | Imprint | This part of the site doesn't use cookies.