5
在我的数据库我有5个表:Yii的多重关系
- 游戏(game_id,姓名,...)
- 标签(TAG_ID,姓名,...)
- 集合(coll_id,名,...)
- collections_tags(ID,coll_id,TAG_ID)
- game_tag(ID,game_id,TAG_ID)
每场比赛有很多标签,集合有很多标签。如果我收藏,我可以使用收藏的标签找到它的游戏。
我试图执行与警予的关系这一任务:
//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')
然后我得到一个$收集和尝试这个办法:
echo "collection ".$collection->name.": (id=".$collection->coll_id.") has ".count($collection->tags)."tags\n";
echo count($coll->games);//error here
,并得到一个错误
什么是错的关系?
在你给我(在yiiframework.com)他们使用“角色”模式的例子。在我的情况下是否有必要使用collections_tags模型?或者有一些解决方法,而不创建一个新的类? – lvil 2012-02-19 07:23:47
它可能不是必需的,但如果有办法,这将是非常艰难的,你将不得不挖掘框架的AR代码。您可以在文档中找到以下“原则”:“在我们使用AR执行关系查询之前,我们需要让AR知道一个AR类与另一个AR类是如何关联的”。所以AR适用于模型。这就是来龙去脉。 – 2012-02-19 19:45:17