学说2:在多对多关系中引用连接表

Posted

技术标签:

【中文标题】学说2:在多对多关系中引用连接表【英文标题】:doctrine2: reference the join-table in a many-to-many relation 【发布时间】:2014-10-21 16:13:10 【问题描述】:

我正在使用 Symfony 和 Doctrine 这可能是一个简单的问题,但我似乎无法找到答案......

如何在查询构建器中引用多对多关联的联接表?

我有 2 个实体:具有多对多双向关系的文章和标签

这会创建额外的连接表:

article <-> article_tag <-> tag

我可以通过从文章实体中选择文章表来引用它:

$this->_em->createQueryBuilder();
    ->select('a')
    ->from('Acme\DemoBundle\Entity\Article','a')

我可以通过从标签实体中选择标签表来引用它:

$this->_em->createQueryBuilder();
    ->select('t')
    ->from('Acme\DemoBundle\Entity\Tag','t')

现在我如何从连接表中选择东西?它没有实体......

【问题讨论】:

要与中间表(n-m)交互,您只需要在文章/标签实体中添加函数 addTag/addArticle,并且您的私有 $tags 应该在您的类构造中初始化数组(检查这个链接:doctrine-orm.readthedocs.org/en/latest/reference/…) 【参考方案1】:

您无法与此表交互。 Doctrine 会处理它,就像 Roger Guasch 在 cmets 上所说的那样,您必须创建相应实体的访问器。

如果需要直接和这个实体交互,必须自己定义,威胁m-n表为实体。然后你可以参考它。

希望对你有帮助!

【讨论】:

谢谢!也感谢 Roger Gausch :) 很高兴知道如果我真的需要与这个表交互,我可以为它创建一个实体。

以上是关于学说2:在多对多关系中引用连接表的主要内容,如果未能解决你的问题,请参考以下文章

学说:在自引用中删除实体(多对多)

EntityFramework同一张表多对多关系

Symfony 固定装置和多对多关系(学说)

学说,多对多关系问题

Entity Framework 6 Recipes 2nd Edition(10-9)译 -> 在多对多关系中为插入和删除使用存储过程

春季 JPA |在多对多关系中搜索