我有一个映射超类,其字符串属性“名称”属于一个包(实际上是 SyliusAssortmentBundle)。我的包中有一个继承自该映射超类的类。我想通过使用 DoctrineExtensions (Translatable) 为我的实体添加可翻译功能。由于我无法在我的映射中重新声明属性“名称”,因此我正在尝试按照此原则文档覆盖该属性的映射:
http://docs.doctrine-project.org/en/latest/reference/inheritance-mapping.html#attribute-override
受此启发,我将其添加到我的 product.orm.xml 文件中
<attribute-overrides>
<attribute-override name="name">
<field name="name" column="name" type="string">
<gedmo:translatable/>
</field>
</attribute-override>
</attribute-overrides>
这似乎不起作用。我已向我的实体添加了一个虚拟属性 (trans_name),因此我确信可翻译扩展正在工作。
<field name="trans_name" type="string">
<gedmo:translatable/>
</field>
在坚持以下内容后:
$e->setTranslatableLocale('fr_fr');
$e->setName('name fr');
$e->setTransName('trans name fr');
只是“trans_name”已保存到“ext_translations”表中。
所以。是否可以覆盖映射并添加可翻译?如果是这样。我究竟做错了什么?...
谢谢