Skip to content

Instantly share code, notes, and snippets.

@alcaeus
Created June 18, 2015 07:17
Show Gist options
  • Save alcaeus/36b0c035899d51905951 to your computer and use it in GitHub Desktop.
Save alcaeus/36b0c035899d51905951 to your computer and use it in GitHub Desktop.
EmbedOne hydrator
<?php
/** @EmbedOne */
if (isset($data['missionStatement'])) {
$embeddedDocument = $data['missionStatement'];
$className = $this->unitOfWork->getClassNameForAssociation($this->class->fieldMappings['missionStatement'], $embeddedDocument);
$embeddedMetadata = $this->dm->getClassMetadata($className);
$return = $embeddedMetadata->newInstance();
$embeddedData = $this->dm->getHydratorFactory()->hydrate($return, $embeddedDocument, $hints);
$embeddedId = $embeddedMetadata->identifier && isset($embeddedData[$embeddedMetadata->identifier]) ? $embeddedData[$embeddedMetadata->identifier] : null;
$this->unitOfWork->registerManaged($return, $embeddedId, $embeddedData);
$this->unitOfWork->setParentAssociation($return, $this->class->fieldMappings['missionStatement'], $document, 'missionStatement');
$this->class->reflFields['missionStatement']->setValue($document, $return);
$hydratedData['missionStatement'] = $return;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment