Symfony - 根据外键查找相关项目

时间:2011-01-31 16:29:38

标签: symfony1 symfony-1.4

我有点挣扎,试图找到以下解决方案:

我有很多项目,只是内容项目,即标题等 然后,我可以将标签与多对多关系中的这些项目相关联

我要做的是根据标签查找所有相关项目。

实施例:      项目      ID      1      2      3      4

ItemTag
id | item_id | tag_id
1  |    1    |    1
2  |    1    |    2
3  |    2    |    2
4  |    4    |    3
5  |    4    |    4

Tag
id | tag
1  | Test_1
2  | Test_2
3  | Test_3

现在,我要做的是,假设我在第1项,我需要找到基于item_tag的所有相关项目

我正在使用Propel,所以我正在寻找标准查询...

这是一种很好的做事方式吗?

1 个答案:

答案 0 :(得分:0)

我觉得Item上的这个方法(未经过测试)应该有效:

public function getItemsWithSameTags()
{
    $tags = $this->getTags();

    $tagIDs = array();
    foreach ($tags as $tag)
    {
        $tagIDs[] = $tag->getId();
    }

    return ItemQuery::create()
        ->useItemTagQuery()
            ->where('ItemTag.TagId IN ?', $tagIDs)
        ->endUse()
        ->find();
}