private function mapTranslatable(ClassMetadata $metadata)
{
$className = $metadata->name;
try {
$resourceMetadata = $this->resourceMetadataRegistry->getByClass($className);
} catch (\InvalidArgumentException $exception) {
return;
}
if (!$resourceMetadata->hasParameter('translation')) {
return;
}
/** @var MetadataInterface $translationResourceMetadata */
$translationResourceMetadata = $this->resourceMetadataRegistry->get($resourceMetadata->getAlias() . '_translation');
$metadata->mapOneToMany(['fieldName' => 'translations', 'targetEntity' => $translationResourceMetadata->getClass('model'), 'mappedBy' => 'translatable', 'fetch' => ClassMetadataInfo::FETCH_EXTRA_LAZY, 'indexBy' => 'locale', 'cascade' => ['persist', 'merge', 'remove'], 'orphanRemoval' => true]);
}