nel mio database Ho 5 tabelle:Yii relazioni multiple
- gioco (game_id, nome, ...)
- tag (tag_id, nome, ...)
- di raccolta (coll_id, nome, ...)
- collections_tags (id, coll_id, tag_id)
- game_tag (id, game_id, tag_id)
Ogni gioco ha molti i tag, la raccolta ha molti tag. Se prendo una collezione, posso trovare i suoi giochi usando i tag della collezione.
Sto cercando di eseguire questa operazione con le relazioni 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')
tanto sono un $ raccolta e provare questo:
echo "collection ".$collection->name.": (id=".$collection->coll_id.") has ".count($collection->tags)."tags\n";
echo count($coll->games);//error here
e ottenere un errore
Cosa c'è di sbagliato in le relazioni?
Nell'esempio che mi hai dato (a yiiframework.com) che usano il modello "Ruolo". È necessario utilizzare il modello collections_tags nel mio caso? O c'è qualche soluzione alternativa senza crearne una nuova classe? – lvil
Potrebbe non essere necessario, ma se c'è un modo, sarebbe piuttosto difficile e dovresti scavare nel codice AR del framework. È possibile trovare il seguente "principio" nella documentazione: "Prima di utilizzare AR per eseguire query relazionali, dobbiamo far sapere a AR come una classe AR è correlata con un'altra". Quindi AR funziona con i modelli. Ecco com'è. –