我有2個數據庫。Yii多數據庫關係
db1和db2。我在配置它們定義/ main.php文件
DB1有表table1和DB2具有表2
table1中有一欄是表2
如何定義table1中關係的主鍵?
我照例做了,但它是從db1.table2中檢索數據。
基本上我想鏈接db1.table1和db2.table2
我有2個數據庫。Yii多數據庫關係
db1和db2。我在配置它們定義/ main.php文件
DB1有表table1和DB2具有表2
table1中有一欄是表2
如何定義table1中關係的主鍵?
我照例做了,但它是從db1.table2中檢索數據。
基本上我想鏈接db1.table1和db2.table2
你必須使用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;
要使用其他數據庫連接,您可以覆蓋getDbConnection()
方法在你的模型中。請看:
public function getDbConnection(){
Yii::app()->db2->setActive(true);
return Yii::app()->db2;
}
反正Yii的1.X沒有正式支持跨數據庫關係。您可能需要編寫一些代碼。由於Yii的官方維基說:
限制在多數據庫支持: 表在一個數據庫中不能直接引用另一個數據庫中的表,這意味着關係不交叉DB邊界。
嗨用戶,如果我發佈我的完整代碼,使其工作。你會給我打勾嗎?只有比我會幫助你。 :)我已經解決了這個問題。 – lin 2014-11-17 08:30:34