Cakephp在多个数据库上使用belongsTo

时间:2013-07-24 16:41:01

标签: cakephp-1.3

我需要将表移动到另一个数据库。

如果我这样做,所有HABTM关系都可以使用像this这样的教程。

但是在其他模型中有belongsTo和hasMany关系,似乎在find()函数中被跳过。

我发现:

  

if databases for model is different the join build is bypassed. in source_dbo

如果不深入代码,是否有顺畅的解决方法?

表:DB1上的A,B 表:DB2上的C

表:属于C. 表:B HABTM C

在模型A上创建find(),仅返回表A中的数据。 在模型B上,find()返回表B和C中的所有连接数据。

1 个答案:

答案 0 :(得分:0)

不确定为什么默认情况下这是禁用/限制的(希望在我不断开发此产品时发现),但经过几个小时的努力,我决定搞乱/ lib / cake / Model / DataSource / DboSoure.php Class并删除了限制。

//<-- commented out line 1064
//if ($model->useDbConfig === $linkModel->useDbConfig) { 

    if ($bypass) {
            $assocData['fields'] = false;
    }
    if ($this->generateAssociationQuery($model, $linkModel, $type, $assoc, $assocData, $queryData, $external, $null) === true) {
            $linkedModels[$type . '/' . $assoc] = true;
    }

//} <-- commented out line 1071

之后,$ belongsTo关系的一切正常。