早上好,笨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