树行为和关联在我的应用程序中运行良好。
我正在尝试在运行时切换树表,它适用于 beforeFind 方法中的以下代码:
$this->setSource($table);
但是,当我使用恢复方法重新排列树时,所有查询都不会考虑表名:我在新表上得到 SHOW COLUMN 查询,在默认表上得到 SELECT 查询。我试图禁用和清除我的应用程序的缓存但没有成功。
我也在更改关联模型的表,但是没有它也会出现问题。
任何建议将不胜感激。
编辑:这是使用的模型: https ://github.com/croogo/croogo/blob/1.3/models/taxonomy.php
我禁用(永久,而不是在运行时)缓存行为。
我将问题追溯到recover方法,bindModel没有考虑到useTable。
$Model->bindModel(array('belongsTo' => array('VerifyParent' => array(
'className' => $Model->name,
'foreignKey' => $parent,
'fields' => array($Model->primaryKey, $left, $right, $parent),
))));
我试过没有成功:
$Model->VerifyParent->useTable = $Model->useTable;
belongsTo associations cannot define custom tables for the linked model. You may need to seed ClassRegistry with a properly configured model with the VerifyParent key.