我有点挣扎,试图找到以下解决方案:
我有很多项目,只是内容项目,即标题等 然后,我可以将标签与多对多关系中的这些项目相关联
我要做的是根据标签查找所有相关项目。
实施例: 项目 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,所以我正在寻找标准查询...
这是一种很好的做事方式吗?
答案 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();
}