Я ищу решение для автоматического перевода объектов моего приложения Symfony. Я застрял в устаревшей базе данных, где переводы хранятся в той же таблице, что и дополнительные поля:
id | name | name_de | name_fr
1 | cat | Katze | chat
2 | dog | Hund | chien
Моя сущность отображается соответственно:
class Animal
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*
* @var integer
*/
private $id;
/**
* @ORM\Column(name="name", type="string", length=64, nullable=false)
*
* @var string
*/
private $name;
/**
* @ORM\Column(name="name_de", type="string", length=64, nullable=false)
*
* @var string
*/
private $nameDe;
/**
* @ORM\Column(name="name_fr", type="string", length=64, nullable=false)
*
* @var string
*/
private $nameFr;
/* Followed by getters and setters */
}
Я уже рассматривал расширение Translatable, но оно не может соответствует моей схеме базы данных. Я также начал с пользовательской аннотации, подключающейся к событию postLoad
, но затем меня остановила простая проблема, заключающаяся в том, что postLoad
может запускаться в прокси-состоянии сущности.
Затем я бы посмотрел на пользовательский обходчик запросов (в основном модифицированный подход расширения Translatable), но я надеюсь, что там есть менее сложное решение.
Ура Матиас