1

我一直坚持让它与 Symfony2 和 Doctrine 一起工作,情况是:一个带有刺耳信息的页面(一般信息和看护信息)。

一个护理可以有多个穿孔,它适用于一个穿孔可以有多个护理

数据库布局:

Piercings:
    id
    name
    ...

Caretaking:
    id
    title
    description

piercing_to_caretaking
    id
    piercing_id
    caretaking_id

现在,我将如何创建实体和相应的 Query/Dql ?

4

1 回答 1

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 或 Caretaking 实体时,您可以像这样访问相关实体:

$piercing->addCaretaking($caretaking); 
$caretakings = $piercing->getCaretakings();
...
$piercings = $caretaking->getPiercings();

有关更多信息,包括如何使用注释执行此操作,请参阅Doctrine 文档的第 5 节关联映射中的5.1.4 多对多、双向小节。

于 2012-05-30T10:44:04.513 回答