Sylius\Bundle\ResourceBundle\EventListener\ORMTranslatableListener::mapTranslatable PHP Method

mapTranslatable() private method

Add mapping data to a translatable entity.
private mapTranslatable ( Doctrine\ORM\Mapping\ClassMetadata $metadata )
$metadata Doctrine\ORM\Mapping\ClassMetadata
    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]);
    }