如果您使用 yml 定义实体:
在 Piercing.orm.yml 添加:
manyToMany:
caretakings:
targetEntity: Caretaking
inversedBy: piercings
joinTable:
name: piercing_caretaking
joinColumns:
caretaking:
referencedColumnName: id
inverseJoinColumns:
piercing:
referencedColumnName: id
在 Caretaking.orm.yml 添加:
manyToMany:
piercings:
targetEntity: Piercing
mappedBy: caretakings
以通常的方式生成/更新实体,即:
app/console doctrine:schema:update --dump-sql (to check results)
app/console doctrine:schema:update --force (to apply changes)
然后,当您拥有 Piercing 或 Caretaking 实体时,您可以像这样访问相关实体:
$piercing->addCaretaking($caretaking);
$caretakings = $piercing->getCaretakings();
...
$piercings = $caretaking->getPiercings();
有关更多信息,包括如何使用注释执行此操作,请参阅Doctrine 文档的第 5 节关联映射中的5.1.4 多对多、双向小节。