/** * @param mixed $object * @param AssociationMetadata $associationMetadata * * @return array The resource identifier */ protected function processRelatedObject($object, AssociationMetadata $associationMetadata) { $targetMetadata = $associationMetadata->getTargetMetadata(); $preparedValue = $this->prepareRelatedValue($object, $associationMetadata->getTargetClassName(), $targetMetadata); if ($preparedValue['idOnly']) { $resourceId = $this->getResourceIdObject($preparedValue['entityType'], $this->entityIdTransformer->transform($preparedValue['value'])); } else { $resourceId = $this->getResourceIdObject($preparedValue['entityType'], $this->entityIdAccessor->getEntityId($preparedValue['value'], $targetMetadata)); $this->addRelatedObject($preparedValue['value'], $targetMetadata); } return $resourceId; }