2014-11-06 8 views
0

У меня есть 2 базы данных.Yii несколько связей с базой данных

db1 и db2. Я определил их в конфиге/main.php файл

DB1 имеет таблицу table1 и db2 имеет table2

table1 имеет столбец, который является первичным ключом table2

Как определить отношения в table1?

Я сделал это как обычно, но он извлекает данные из db1.table2.

В основном я хочу, чтобы связать db1.table1 и db2.table2

+0

Привет, пользователь, если я разместил свой полный код, чтобы сделать эту работу. Не могли бы вы дать мне тик? Только я помогу тебе. :) Я решил это уже. – lin

ответ

0

Вы должны использовать Yii Query Builder, и сделать запрос следующим образом:

SELECT u1.* FROM database1.users u1 LEFT JOIN database2.users u2 ON u1.id=u2.id WHERE u2.id IS NOT NULL; 
0

Чтобы использовать ваше другое соединение дБ, Вы можете переопределить getDbConnection() способ в вашей модели. Посмотрите:

public function getDbConnection(){ 
    Yii::app()->db2->setActive(true); 
    return Yii::app()->db2; 
} 

Во всяком случае, Yii 1.X официально не поддерживает Межбазовые отношения. Возможно, вам придется написать некоторые коды. В качестве официального Wiki Yii; говорит:

Ограничение на поддержке Multi-DB: таблицы в одной базе данных не может непосредственно ссылаться на таблицы в другой базе данных, и это означает, что отношения не пересекают границ БДА.

Смежные вопросы