バンドル (実際には SyliusAssortmentBundle) に属する文字列プロパティ 'name' を持つマップされたスーパークラスがあります。そのマップされたスーパークラスから継承するクラスがバンドルに含まれています。DoctrineExtensions (Translatable) を使用して、エンティティに Translatable 機能を追加したいと考えています。マッピングでプロパティ 'name' を再宣言できないため、このドクトリン ドキュメントに従って、そのプロパティのマッピングをオーバーライドしようとしています。
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) をエンティティに追加したので、Translatable Extension が機能していることを確認できました。
<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」テーブルに保存されています。
そう。マッピングをオーバーライドして Translatable を追加することは可能ですか? もしそうなら。私は何を間違っていますか?...
ありがとう