2010-07-29 3 views
1

Par exemple, la table posts est dans db1, la table categories et la table category_post_join sont dans db2. Comment déclarer une relation many-to-many entre le modèle Post et le modèle Category?Comment déclarer des relations plusieurs-à-plusieurs si la table de jointure se trouve dans une base de données différente?

'categories'=>array(self::MANY MANY, 'Category', 'category_post_join (post_id, category_id)') 

fonctionne uniquement si toutes les tables se trouvent dans la même base de données.

Répondre

0

Je ne pense pas que ce soit possible. La fonctionnalité CActiveRecord est basée sur une connexion PDO physique, qui est liée à une base de données spécifique. Il n'y a pas de support pour faire une jointure entre plusieurs bases de données que je connais. En fait, j'ai rencontré le même problème il y a un certain temps et j'ai dû le contourner. Je souhaite vraiment qu'il y ait une réponse possible ici, mais je n'en ai pas trouvé jusqu'à présent.

+0

J'ai préfixé le nom de la table de jointure avec le nom de la base de données (par exemple, db2.category_post_join). Cela fonctionne pour certains cas. – powerboy

+0

Ouais je suppose que cela pourrait fonctionner si les autorisations et ainsi de suite sont corrects. Étant donné ce que Yii fait avec les requêtes et ainsi de suite, je ne me sentais vraiment pas à l'aise de le faire. Merci pour les commentaires. – Blizz

Questions connexes