Использование Atlantic18 / DoctrineExtensions переводимая функция Я борюсь с запасными значениями.
Я хочу знать для каждого переводимого свойства (свойства, имеющие аннотацию @Gedmo\Translatable
в сущности), еслизначение, которое я получил, является запасным значением или, если оно реальное.
Я пытался:
Управлял им, используя 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);
}
}
}
Использование нестандартных AST ходунков и достигается для получения нужных данных более чистым способом.Однако я не знаю, как получить добавленные поля в моей сущности, не сохраняя информацию, потому что это зависит от локали.
Может кто-нибудь объяснить мне, как я могу знать для каждогосвойство моего объекта, если значение является запасным вариантом?
Кажется, мой вопрос связан с проблемой Как проверить, была ли запись переведена?# 1439 .