2014-11-06 106 views
0

我有2個數據庫。Yii多數據庫關係

db1和db2。我在配置它們定義/ main.php文件

DB1有表table1和DB2具有表2

table1中有一欄是表2

如何定義table1中關係的主鍵?

我照例做了,但它是從db1.table2中檢索數據。

基本上我想鏈接db1.table1和db2.table2

+0

嗨用戶,如果我發佈我的完整代碼,使其工作。你會給我打勾嗎?只有比我會幫助你。 :)我已經解決了這個問題。 – lin 2014-11-17 08:30:34

回答

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沒有正式支持跨數據庫關係。您可能需要編寫一些代碼。由於Yii的官方維基說:

限制在多數據庫支持: 表在一個數據庫中不能直接引用另一個數據庫中的表,這意味着關係不交叉DB邊界。