2011-06-19 19 views
1

私はDoctrine 2のマッピングを(XMLで)作成しています。私が使用してスニペットとタグエンティティ間の多対多の関係を作成したいと思います:doctrine 2多対多の関係

スニペットを:

<many-to-many field="tags" target-entity="Tag"> 
    <cascade><cascade-all /></cascade> 
</many-to-many> 

タグ

<many-to-many field="snippets" target-entity="Snippet"> 
    <cascade><cascade-all /></cascade> 
</many-to-many> 

しかし、私が使用している場合schematoolを使用してデータベーステーブルを生成すると、2つのテーブルが追加されます。 tag_snippetおよびsnippet_tag。 2の代わりに1つのテーブルだけを使用する方法はありますか?

解決策はエンティティの1つのみのリレーションを定義するだけですが、他のエンティティからリレーションにアクセスできるようになりますか? (特定の特性が逆に定義されていないため)

私はここではっきりと分からないようです。

答えて

2

"所有側"(Doctrine用語で)を決定し、ManyToManyタグに適切な "mapped-by"属性と "inversed-by"属性を追加する必要があるようです。

documenation(具体的にはXMLの例)を参照してください。

+0

ああ、私はそれを逃したようだ;)ありがとう – geoffreydv