Yii множественные отношения - PullRequest
5 голосов
/ 16 февраля 2012

В моей базе данных у меня есть 5 таблиц:

  • game (game_id, name, ...)
  • tag (tag_id, name, ...)
  • collection (coll_id, name, ...)
  • collection_tags (id, coll_id, tag_id)
  • game_tag (id, game_id, tag_id)

КаждыйВ игре много тегов, в коллекции много тегов.Если я возьму коллекцию, я могу найти ее игры, используя теги коллекции.

Я пытаюсь выполнить эту задачу с отношениями yii:

//in Collection's relations:
 'tags'=>array(self::MANY_MANY, 'Tag',  'collections_tags(coll_id,tag_id)'),  
 'games'=>array(self::HAS_MANY, 'Game','tag_id', 'through'=>'tags')

Затем я получаю $ collection и пробую это:

 echo "collection ".$collection->name.": (id=".$collection->coll_id.") has ".count($collection->tags)."tags\n";
echo count($coll->games);//error here

и получаю ошибку
Что не так в отношениях?

1 Ответ

6 голосов
/ 16 февраля 2012

Как вы можете видеть здесь: http://www.yiiframework.com/doc/guide/1.1/en/database.arr#relational-query-with-through, правильное объявление этого отношения будет следующим:

 'games'=>array(self::HAS_MANY, 'Game', array('tag_id'=>'id'), 'through'=>'tags')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...