Преглед изворни кода

Merge pull request #289 from Gladhon/master

SingleTable Issue
Gediminas Morkevicius пре 13 година
родитељ
комит
fb3db8d4a7
1 измењених фајлова са 7 додато и 2 уклоњено
  1. 7 2
      lib/Gedmo/Translatable/Entity/Repository/TranslationRepository.php

+ 7 - 2
lib/Gedmo/Translatable/Entity/Repository/TranslationRepository.php

@@ -55,6 +55,11 @@ class TranslationRepository extends EntityRepository
     public function translate($entity, $field, $locale, $value)
     {
         $meta = $this->_em->getClassMetadata(get_class($entity));
+        if($meta->inheritanceType == ClassMetadataInfo::INHERITANCE_TYPE_SINGLE_TABLE){
+            $metaname = $meta->rootEntityName;
+        }else{
+            $metaname = $meta->name;
+        }          
         $listener = $this->getTranslatableListener();
         $config = $listener->getConfiguration($this->_em, $meta->name);
         if (!isset($config['fields']) || !in_array($field, $config['fields'])) {
@@ -66,8 +71,8 @@ class TranslationRepository extends EntityRepository
         } else {
             $ea = new TranslatableAdapterORM();
             $foreignKey = $meta->getReflectionProperty($meta->getSingleIdentifierFieldName())->getValue($entity);
-            $objectClass = $meta->name;
-            $class = $listener->getTranslationClass($ea, $meta->name);
+            $objectClass = $metaname;
+            $class = $listener->getTranslationClass($ea, $metaname);
             $transMeta = $this->_em->getClassMetadata($class);
             $trans = $this->findOneBy(compact('locale', 'field', 'objectClass', 'foreignKey'));
             if (!$trans) {