2

バンドル (実際には 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 を追加することは可能ですか? もしそうなら。私は何を間違っていますか?...

ありがとう

4

2 に答える 2