我正在寻找一种解决方案来自动翻译我的 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 扩展的一种修改方法),但我希望那里有一个不太复杂的解决方案。
干杯马蒂亚斯