我坚持让它与Symfony2和Doctrine一起工作,情况如下: 带有穿孔信息的页面(一般信息和护理信息)。
护理服务可以有多次穿孔,穿刺可以有多次护理
数据库布局:
Piercings:
id
name
...
Caretaking:
id
title
description
piercing_to_caretaking
id
piercing_id
caretaking_id
现在,我将如何创建实体和相应的Query / Dql?
答案 0 :(得分:3)
如果使用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->addCaretaking($caretaking);
$caretakings = $piercing->getCaretakings();
...
$piercings = $caretaking->getPiercings();
有关更多信息,包括如何使用注释执行此操作,请参阅Doctrine文档的Section 5 Association Mapping中的5.1.4多对多,双向子部分。