5
私は5つのテーブルがあります。Yiiの複数の関係
- ゲーム(game_id、名前、...)
- タグ(TAG_ID、名前、...)
- コレクション(coll_idを、名、...)
- collections_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')
それから私は$コレクションを取得し、この試してみてください。
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
これは必要ではないかもしれませんが、方法がある場合はかなり難しく、フレームワークのARコードを掘り下げる必要があります。 「ARを使用してリレーショナル・クエリーを実行する前に、ARクラスが他のARクラスとどのように関連しているかをARに知らせる必要があります。だから、ARはモデルで動作します。そうだよ。 –