function EntityRepository::getCanonicalMultiple

Same name and namespace in other branches
  1. 8.9.x core/lib/Drupal/Core/Entity/EntityRepository.php \Drupal\Core\Entity\EntityRepository::getCanonicalMultiple()
  2. 10 core/lib/Drupal/Core/Entity/EntityRepository.php \Drupal\Core\Entity\EntityRepository::getCanonicalMultiple()
  3. 11.x core/lib/Drupal/Core/Entity/EntityRepository.php \Drupal\Core\Entity\EntityRepository::getCanonicalMultiple()

Overrides EntityRepositoryInterface::getCanonicalMultiple

1 call to EntityRepository::getCanonicalMultiple()
EntityRepository::getCanonical in core/lib/Drupal/Core/Entity/EntityRepository.php
Retrieves the canonical entity variant matching the specified context.

File

core/lib/Drupal/Core/Entity/EntityRepository.php, line 180

Class

EntityRepository
Provides several mechanisms for retrieving entities.

Namespace

Drupal\Core\Entity

Code

public function getCanonicalMultiple($entity_type_id, array $entity_ids, array $contexts = NULL) {
    $entities = $this->entityTypeManager
        ->getStorage($entity_type_id)
        ->loadMultiple($entity_ids);
    if (!$entities || !$this->languageManager
        ->isMultilingual()) {
        return $entities;
    }
    if (!isset($contexts)) {
        $contexts = $this->contextRepository
            ->getAvailableContexts();
    }
    // @todo Consider deprecating the legacy context operation altogether in
    //   https://www.drupal.org/node/3031124.
    $legacy_context = [];
    $key = static::CONTEXT_ID_LEGACY_CONTEXT_OPERATION;
    if (isset($contexts[$key])) {
        $legacy_context['operation'] = $contexts[$key]->getContextValue();
    }
    $canonical = [];
    $langcode = $this->getContentLanguageFromContexts($contexts);
    foreach ($entities as $id => $entity) {
        $canonical[$id] = $this->getTranslationFromContext($entity, $langcode, $legacy_context);
    }
    return $canonical;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.