Skip to content

Instantly share code, notes, and snippets.

@GabrielCW
Created December 29, 2015 17:06
Show Gist options
  • Save GabrielCW/a812b91b29fa05b45b40 to your computer and use it in GitHub Desktop.
Save GabrielCW/a812b91b29fa05b45b40 to your computer and use it in GitHub Desktop.
public function onPostSerialize(ObjectEvent $event)
{
$object = $event->getObject();
$accessor = PropertyAccess::createPropertyAccessor();
if($object instanceof ResourceInterface)
{
$metaData = $this->em->getClassMetadata($this->rm->getShortClass(get_class($object)));
$associations = $metaData->associationMappings;
foreach($associations as $name => $association)
{
$idField = $association['joinColumns'][0]['referencedColumnName'];
$linkedAssociate = $accessor->getValue($object, $association['fieldName']);
if(is_array($linkedAssociate))
{
$ids = array();
foreach($linkedAssociate as $link)
{
$ids[] = $accessor->getValue($link, $idField);
}
$event->getVisitor()->addData($name, $ids);
}
else $event->getVisitor()->addData($name, $accessor->getValue($linkedAssociate, $idField));
}
//$event->getVisitor()->addData('someKey','someValue');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment