学说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:在多对多关系中引用连接表的主要内容,如果未能解决你的问题,请参考以下文章
Entity Framework 6 Recipes 2nd Edition(10-9)译 -> 在多对多关系中为插入和删除使用存储过程