Skip to content

Commit

Permalink
Merge pull request Sylius#8409 from dannyvw/features/translatable
Browse files Browse the repository at this point in the history
[ResourceBundle] Add check before add translation mapping
  • Loading branch information
pjedrzejewski committed Aug 31, 2017
2 parents a4381b2 + 37e1c12 commit 0350083
Showing 1 changed file with 24 additions and 20 deletions.
Expand Up @@ -126,15 +126,17 @@ private function mapTranslatable(ClassMetadata $metadata): void
/** @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,
]);
if (!$metadata->hasAssociation('translations')) {
$metadata->mapOneToMany([
'fieldName' => 'translations',
'targetEntity' => $translationResourceMetadata->getClass('model'),
'mappedBy' => 'translatable',
'fetch' => ClassMetadataInfo::FETCH_EXTRA_LAZY,
'indexBy' => 'locale',
'cascade' => ['persist', 'merge', 'remove'],
'orphanRemoval' => true,
]);
}
}

/**
Expand All @@ -155,17 +157,19 @@ private function mapTranslation(ClassMetadata $metadata): void
/** @var MetadataInterface $translatableResourceMetadata */
$translatableResourceMetadata = $this->resourceMetadataRegistry->get(str_replace('_translation', '', $resourceMetadata->getAlias()));

$metadata->mapManyToOne([
'fieldName' => 'translatable',
'targetEntity' => $translatableResourceMetadata->getClass('model'),
'inversedBy' => 'translations',
'joinColumns' => [[
'name' => 'translatable_id',
'referencedColumnName' => 'id',
'onDelete' => 'CASCADE',
'nullable' => false,
]],
]);
if (!$metadata->hasAssociation('translatable')) {
$metadata->mapManyToOne([
'fieldName' => 'translatable',
'targetEntity' => $translatableResourceMetadata->getClass('model'),
'inversedBy' => 'translations',
'joinColumns' => [[
'name' => 'translatable_id',
'referencedColumnName' => 'id',
'onDelete' => 'CASCADE',
'nullable' => false,
]],
]);
}

if (!$metadata->hasField('locale')) {
$metadata->mapField([
Expand Down

0 comments on commit 0350083

Please sign in to comment.