2011-02-18 80 views
0

假设我有三个实体:标签 & 用户。文章和标签是多对多相关的。Doctrine2 - 加关系,关系

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

现在我只知道一个解决方案:创建一个第四实体“ArticleTags”有三个关系领域文章标签用户。显示所有标签中的一篇文章就变成...

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

...这是直截了当超过$物品─少得多> getTags()已经,再加上它要求各类仓库权谋的查询,排序等等。

这种事情有没有更理想的解决方案?我现在正在使用Doctrine 2.1.0-DEV。谢谢。

+0

[Doctrine2:处理多对多参考表中多列的最佳方法]的可能重复(http://stackoverflow.com/questions/3542243/doctrine2-best-way-to-handle-many-一对多与 - 特列 - 在引用表) – Crozin

回答

0

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

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