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