diff --git a/DataTransformer/EntityToIdentifierTransformer.php b/DataTransformer/EntityToIdentifierTransformer.php index 7da397c..330a382 100644 --- a/DataTransformer/EntityToIdentifierTransformer.php +++ b/DataTransformer/EntityToIdentifierTransformer.php @@ -30,17 +30,23 @@ public function __construct(ObjectManager $om) } /** - * If the passed argument is a valid entity return the id, else return empty string + * If the passed argument is a valid entity where {identifier} !== null, else return empty string * @param mixed $entity * @return integer|string */ public function transform($entity) { - if (is_null($entity) || !is_object($entity) || !method_exists($entity, 'getId')) { + if (is_null($entity) || !is_object($entity)) { return ''; } - - return $entity->getId(); + + $meta = $this->om->getClassMetadata(get_class($entity)); + $identifier = current($meta->getIdentifierValues($entity)); + if($identifier === null) { + return ''; + } + + return $identifier; } /** @@ -77,4 +83,4 @@ public function setEntityRepository($entityRepository) $this->entityRepository = $entityRepository; } -} \ No newline at end of file +}