/** * @param ColumnInfoInterface $columnInfo * @param ORMClassMetadataInfo $metadata * * @return array */ private function getORMTransformerInfo(ColumnInfoInterface $columnInfo, ORMClassMetadataInfo $metadata) { if (!$metadata->hasAssociation($columnInfo->getPropertyPath())) { return; } $mapping = $metadata->getAssociationMapping($columnInfo->getPropertyPath()); if (!$this->doctrine->getRepository($mapping['targetEntity']) instanceof ReferableEntityRepositoryInterface) { return; } return array($this->transformer, array('class' => $mapping['targetEntity'], 'multiple' => ORMClassMetadataInfo::MANY_TO_MANY === $mapping['type'])); }
/** * @param ClassMetadataInfo $metadata * * @throws \RuntimeException */ private function loadAssociations(ClassMetadataInfo $metadata) { if (!array_key_exists($metadata->name, $this->associations)) { return; } try { foreach ($this->associations[$metadata->name] as $type => $mappings) { foreach ($mappings as $mapping) { // the association is already set, skip the native one if ($metadata->hasAssociation($mapping['fieldName'])) { continue; } call_user_func(array($metadata, $type), $mapping); } } } catch (\ReflectionException $e) { throw new \RuntimeException(sprintf('Error with class %s : %s', $metadata->name, $e->getMessage()), 404, $e); } }
/** * @param ClassMetadataInfo $metadata * * @throws \RuntimeException */ protected function loadAssociations($eventArgs, ClassMetadataInfo $metadata) { if (!array_key_exists($metadata->getName(), $this->associations)) { return; } try { foreach ($this->associations[$metadata->getName()] as $type => $mappings) { foreach ($mappings as $mapping) { if ($metadata->hasAssociation($mapping['fieldName'])) { continue; } call_user_func(array($metadata, $type), $mapping); } } } catch (\ReflectionException $e) { throw new \RuntimeException(sprintf('Error with class %s : %s', $metadata->getName(), $e->getMessage()), 404, $e); } }