2011-02-18 45 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實體是一個很好的方法。

或者,如果用戶實體與文章和標籤有關聯,則應該能夠從用戶實體映射出哪些標籤屬於該特定用戶的哪個帖子。