我需要将表移动到另一个数据库。
如果我这样做,所有 HABTM 关系都可以通过使用这样的教程正常工作。
然而,在其他模型中存在 belongsTo 和 hasMany 关系,这似乎在 find() 函数中被跳过了。
我发现:
有没有不深入代码的顺利解决方法?
表:DB1 上的 A、B 表:DB2 上的 C
表:A 属于 C 表:B HABTM C
在模型 A 上创建 find(),仅返回表 A 中的数据。在模型 B 上,find() 返回表 B 和 C 中的所有连接数据。
我需要将表移动到另一个数据库。
如果我这样做,所有 HABTM 关系都可以通过使用这样的教程正常工作。
然而,在其他模型中存在 belongsTo 和 hasMany 关系,这似乎在 find() 函数中被跳过了。
我发现:
有没有不深入代码的顺利解决方法?
表:DB1 上的 A、B 表:DB2 上的 C
表:A 属于 C 表:B HABTM C
在模型 A 上创建 find(),仅返回表 A 中的数据。在模型 B 上,find() 返回表 B 和 C 中的所有连接数据。
不知道为什么默认情况下禁用/限制它(希望在我继续开发这个产品时会发现),但是在挣扎了几个小时之后,我决定搞乱 /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 关系,一切正常。