おはようございます、
私は現在、CodeigniterとDatamapper Library(http://datamapper.wanwizard.eu)を利用するプロジェクトに取り組んでいます。このプロジェクトでは、ユーザーデータ用の中央データベース(「ベース」と呼ばれる)と、アプリケーションデータ用の個別のデータベース(「crm」)を使用します。これは、将来、単一のサーバーに縛られることなく、ユーザーディレクトリを使用する他のアプリケーションを構築できるようにするためです。
組み込みのDatamapper関係を使用する必要があるが、2つのデータベース間で使用する必要があるという問題があります。これまでの私の設定は次のとおりです。
人物モデル
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
誰かがその問題に光を当てることができますか?DataMapperは実際にデータベース間の結合をサポートしていますか?そうでない場合、これを達成する方法はありますか?