В моей базе данных у меня есть 5 таблиц:
В каждой игре есть много тегов, в коллекции есть много тегов. Если я возьму коллекцию, я могу найти ее игры, используя теги коллекции.
Я пытаюсь выполнить эту задачу с помощью отношений 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
и получить сообщение об ошибке
Что не так в отношениях?
Как вы можете видеть здесь: 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')