function UuidResolver::resolve

Same name in other branches
  1. 8.9.x core/modules/serialization/src/EntityResolver/UuidResolver.php \Drupal\serialization\EntityResolver\UuidResolver::resolve()
  2. 10 core/modules/serialization/src/EntityResolver/UuidResolver.php \Drupal\serialization\EntityResolver\UuidResolver::resolve()
  3. 11.x core/modules/serialization/src/EntityResolver/UuidResolver.php \Drupal\serialization\EntityResolver\UuidResolver::resolve()

Overrides EntityResolverInterface::resolve

File

core/modules/serialization/src/EntityResolver/UuidResolver.php, line 33

Class

UuidResolver
Resolves entities from data that contains an entity UUID.

Namespace

Drupal\serialization\EntityResolver

Code

public function resolve(NormalizerInterface $normalizer, $data, $entity_type) {
    // The normalizer is what knows the specification of the data being
    // deserialized. If it can return a UUID from that data, and if there's an
    // entity with that UUID, then return its ID.
    if ($normalizer instanceof UuidReferenceInterface && ($uuid = $normalizer->getUuid($data))) {
        if ($entity = $this->entityRepository
            ->loadEntityByUuid($entity_type, $uuid)) {
            return $entity->id();
        }
    }
    return NULL;
}

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