Bläddra i källkod

fix bug about create/update translation

Vincent CHALAMON 13 år sedan
förälder
incheckning
17e36417fb
1 ändrade filer med 4 tillägg och 1 borttagningar
  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);