开发者

Symfony - finding associated items, based on foreign key

开发者 https://www.devze.com 2023-02-07 13:31 出处:网络
I\'m having a little bit of a struggle, trying to come up with a solution for the following: I have a bunch of items, that are just content items, i.e. title etc

I'm having a little bit of a struggle, trying to come up with a solution for the following:

I have a bunch of items, that are just content items, i.e. title etc I then can associate a tag to such items, in a many-to-many relationship

What I'm looking to do, is find all associated items, based on their tags.

Example: Item 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

Now, wh开发者_JAVA技巧at I'm looking to do is, let's say i was on item 1, i need to find all associated items based on the item_tag

I am using Propel, so I'm looking for a criteria query...

Is this a good way of doing things?


I think something like this method (not tested) on Item should work:

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();
}
0

精彩评论

暂无评论...
验证码 换一张
取 消