소스 검색

Merge pull request #383 from ep-factory/master

Update TranslatableListener
Gediminas Morkevicius 12 년 전
부모
커밋
760896ae8c
1개의 변경된 파일4개의 추가작업 그리고 1개의 파일을 삭제
  1. 4 1
      lib/Gedmo/Translatable/TranslatableListener.php

+ 4 - 1
lib/Gedmo/Translatable/TranslatableListener.php

@@ -534,7 +534,9 @@ class TranslatableListener extends MappedEventSubscriber
                 $value = $wrapped->getPropertyValue($field);
                 $content = $ea->getTranslationValue($object, $field);
                 $translation->setContent($content);
-                if (!empty($content)) {
+                // check if need to update in database
+                $transWrapper = AbstractWrapper::wrap($translation, $om);
+                if (!empty($content) && ($isInsert || !$transWrapper->getIdentifier() || isset($changeSet[$field]))) {
                     if ($isInsert && !$objectId && !$ea->usesPersonalTranslation($translationClass)) {
                         // if we do not have the primary key yet available
                         // keep this translation in memory to insert it later with foreign key
@@ -564,6 +566,7 @@ class TranslatableListener extends MappedEventSubscriber
                     }
                 }
             }
+            $ea->recomputeSingleObjectChangeset($uow, $meta, $object);
             // cleanup current changeset only if working in a another locale different than de default one, otherwise the changeset will always be reverted
             if ($locale !== $this->defaultLocale) {
                 $ea->clearObjectChangeSet($uow, $oid);