Doctrine2 - 增加关系的关系

时间:2011-02-18 20:35:49

标签: php orm doctrine-orm

假设我有三个实体:文章标记& 用户即可。文章和标签是多对多相关的。

我想要做的是将用户信息添加到多对多关系中 - 这样我就可以告诉哪个用户在文章中添加了哪个标签。基本上,SQL中的结果应该是article_tags(包含article_id和tag_id键的多对多关系表)中的第三列'user_id',我可以查询。

现在我只知道一个解决方案:创建第四个实体'ArticleTags',它有三个关系字段 article tag user 。显示文章中的所有标签然后变为......

<?php
foreach($article->getArticleTags() AS $articleTag) {
    echo $articleTag->getTag()->getName()
}

...这比$ article-&gt; getTags()要简单得多,而且需要各种存储库技巧来查询,排序等等。

对于这种事情,是否有更理想的解决方案?我现在正在使用Doctrine 2.1.0-DEV。感谢。

1 个答案:

答案 0 :(得分:0)

IMO,我认为ArticleTags实体是一种很好的方法。

或者,如果用户实体与文章和标签有关联,您应该能够从用户实体中映射哪些标签属于该特定用户的哪个帖子。