В настоящее время я работаю над проектом, в котором используются Codeigniter и библиотека 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')
)
}
Когда я пытаюсь использовать $events->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
Подробнее здесь: https://stackoverflow.com/questions/772 ... base-joins
Мобильная версия