Doctrine2 - добавление отношений к отношениям - PullRequest
0 голосов
/ 18 февраля 2011

Предполагается, что у меня есть три объекта: Артикул , Метка & Пользователь . Статьи и теги связаны между собой многими.

Что я хотел бы сделать, так это добавить информацию о пользователе в отношение многие ко многим, чтобы я мог сказать, какой пользователь добавил какой тег в статью. По сути, результатом в SQL должен быть третий столбец 'user_id' в article_tags (таблица отношений "многие ко многим", содержащая ключи article_id и tag_id), к которому я могу обратиться.

В настоящий момент мне известно только одно решение: создание четвертой сущности ArticleTags с тремя полями отношений article , tag и user . Отображение всех тегов в статье становится ...

<?php
foreach($article->getArticleTags() AS $articleTag) {
    echo $articleTag->getTag()->getName()
}

... что уже намного проще, чем $ article-> getTags (), плюс для этого требуются все виды хитрости хранилища для запросов, сортировки и т. Д.

Есть ли более идеальное решение для такого рода вещей? Я использую Doctrine 2.1.0-DEV прямо сейчас. Спасибо.

1 Ответ

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

IMO, я думаю, что сущность ArticleTags - хороший подход.

В качестве альтернативы, если у сущности User есть ассоциации со статьями и тегами, вы должны иметь возможность определить из сущности User, какие теги принадлежат к какому сообщению для этого конкретного пользователя.

...