Symfony - поиск связанных предметов на основе внешнего ключа - PullRequest
0 голосов
/ 31 января 2011

У меня небольшая борьба, я пытаюсь найти решение для следующего:

У меня есть куча элементов, которые являются просто элементами контента, то есть заголовком и т. Д. Затем я могупривязать тег к таким элементам в отношении «многие ко многим»

Я хочу найти все связанные элементы на основе их тегов.

Пример: идентификатор элемента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

IЯ использую Propel, поэтому я ищу запрос критерия ...

Это хороший способ ведения дел?

1 Ответ

0 голосов
/ 02 февраля 2011

Я думаю, что что-то вроде этого метода (не проверено) на 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();
}
...