学说2多对多关系

时间:2011-06-19 08:14:47

标签: php doctrine-orm

我正在创建我的Doctrine 2映射(用XML格式)。我想使用:

在实体Snippet和Tag之间创建多对多关系

<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生成数据库表时,会添加两个表。 tag_snippet和snippet_tag。有没有办法只使用1个表而不是2个?

解决方案只是定义其中一个实体中的关系,但是我能够从另一个实体中访问它吗? (因为没有反过来定义特定属性)

看起来我在这里遗漏了一些明显的东西。

1 个答案:

答案 0 :(得分:2)

看起来您需要确定哪个是“拥有方”(在Doctrine的说法中),并在ManyToMany标记中添加适当的“mapped-by”和“inversed-by”属性。

请参阅documenation,特别是XML示例。