0

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

如果我这样做,所有 HABTM 关系都可以通过使用这样的教程正常工作

然而,在其他模型中存在 belongsTo 和 hasMany 关系,这似乎在 find() 函数中被跳过了。

我发现:

如果模型的数据库不同,则绕过连接构建。在 source_dbo

有没有不深入代码的顺利解决方法?

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

表:A 属于 C 表:B HABTM C

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

4

1 回答 1

0

不知道为什么默认情况下禁用/限制它(希望在我继续开发这个产品时会发现),但是在挣扎了几个小时之后,我决定搞乱 /lib/cake/Model/DataSource/DboSoure.php类并删除了限制。

//<-- 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 关系,一切正常。

于 2014-02-23T03:39:10.330 回答