Получение данных из средней таблицы «многие ко многим» с использованием активной записи - PullRequest
1 голос
/ 30 декабря 2011

У меня точно такой же вопрос, размещенный здесь:

http://www.yiiframework.com/forum/index.php?/topic/25763-grab-data-from-many-to-many-middle-table-using-through/

Что и как может помочь вариант с по в отношении «многие ко многим»

1 Ответ

1 голос
/ 30 декабря 2011

'through' создает связь между двумя таблицами, которые связаны не внешними ключами, а средней таблицей.Например, давайте представим, что у меня есть 3 модели: группы, пользователи и комментарии.Отношения будут такими:

Группы --- (hasMany) ---> Пользователи ---- (hasMany) -----> Комментарии.

Группы и комментариине связанные внешним ключом, но с использованием «через» они будут действовать так, как если бы они были.Это, конечно, означает, что мы можем пользоваться всеми преимуществами AR в реляционных запросах.Например, вы можете получить все комментарии пользователей, принадлежащих к определенной группе, просто:

$group->comments;

Здесь вы можете найти более подробное (но, возможно, немного более техническое) объяснение: http://www.yiiframework.com/doc/guide/1.1/en/database.arr

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

...