public function UuidResolver::resolve

Implements \Drupal\serialization\EntityResolver\EntityResolverInterface::resolve().

Overrides EntityResolverInterface::resolve

File

drupal/core/modules/serialization/lib/Drupal/serialization/EntityResolver/UuidResolver.php, line 20
Contains \Drupal\serialization\EntityResolver\UuidResolver

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 = entity_load_by_uuid($entity_type, $uuid)) {
      return $entity
        ->id();
    }
  }
  return NULL;
}