早上好,笨DataMapper的跨數據庫
我目前的工作,利用笨和DataMapper的圖書館(http://datamapper.wanwizard.eu)項目加入。該項目使用用於用戶數據的中央數據庫(稱爲「基礎」)和用於應用程序數據(「crm」)的單獨數據庫。這是爲了將來我們可以構建其他應用程序,使用用戶目錄而不必綁定到單個服務器。
我有一個問題,我需要使用內置的Datamapper關係,但跨兩個數據庫。這裏是我的設置至今:
角色模型
class person extends DataMapper {
var $db_params = 'base';
var $prefix = 'base_';
var $has_many = array(
'initiated_event' => array('class' => 'event','other_field' => 'initiator')
)
}
事件模型
class event extends DataMapper {
var $db_params = 'crm';
var $prefix = 'crm_';
var $has_one = array(
'initiator' => array('class' => 'person','other_field' => 'initiated_event')
)
}
的問題
當我嘗試使用$事件 - > initiator-> get(),我得到以下錯誤:
Error Number: 1146
Table 'circle_base.crm_events' doesn't exist
SELECT `base_persons`.* FROM (`base_persons`) LEFT OUTER JOIN `crm_events` initiated_event_crm_events ON `base_persons`.`id` = `initiated_event_crm_events`.`initiator_id` WHERE `initiated_event_crm_events`.`id` = 1
Filename: C:\xampp\htdocs\circle\crm\system\database\DB_driver.php
Line Number: 330
任何人可以擺脫對此事的一些輕? DataMapper實際上是否支持跨數據庫連接?如果沒有,我有什麼辦法可以實現這個目標?
我有同樣的問題。我早前就此發佈了一個[問題](http://stackoverflow.com/questions/16171576/joining-tables-in-different-databases-with-the-ci-datamapper-orm)。我看了一下datamapper庫,看起來他們不檢查相關表是否在另一個數據庫中。你是如何解決這個問題的? – Brainfeeder