Является ли запасная информация для переводимых значений - PullRequest
0 голосов
/ 04 октября 2018

Использование Atlantic18 / DoctrineExtensions переводимая функция Я борюсь с запасными значениями.

Я хочу знать для каждого переводимого свойства (свойства, имеющие аннотацию @Gedmo\Translatable в сущности), еслизначение, которое я получил, является запасным значением или, если оно реальное.

Я пытался:

  1. Управлял им, используя postLoad событие , но это действительно уродливо, и это будет беспорядок при работе снесколько переводимых свойств и несколько сущностей:

    <?php
    
    namespace AppBundle\EventListener;
    
    use AppBundle\Entity\MyEntity;
    use Doctrine\ORM\Event\LifecycleEventArgs;
    
    class MyEntityListener
    {
        public function postLoad(LifecycleEventArgs $args)
        {
            $entity = $args->getObject();
            if (!$entity instanceof MyEntity) {
                return;
            }
    
            $em = $args->getObjectManager();
            if ($entity->getName() === null) {
                $entity->setName($em->getRepository(MyEntity::class)->findFallbackValueForField($entity->getId(), 'name'));
                $entity->setIsNameFallback(true);
            }
        }
    }
    
  2. Использование нестандартных AST ходунков и достигается для получения нужных данных более чистым способом.Однако я не знаю, как получить добавленные поля в моей сущности, не сохраняя информацию, потому что это зависит от локали.

Может кто-нибудь объяснить мне, как я могу знать для каждогосвойство моего объекта, если значение является запасным вариантом?

Кажется, мой вопрос связан с проблемой Как проверить, была ли запись переведена?# 1439 .

...