我将现有的应用程序从CakePHP 1.2升级到1.3。模型的一个简化版本是这样的:多个belongsTo创建缓存错误
class Load extends AppModel {
var $belongsTo = array(
'OriginCity' => array(
'className' => 'City',
'foreignKey' => 'origin_city_id',
'conditions' => '',
'fields' => '',
'order' => '',
),
'DestinationCity' => array(
'className' => 'City',
'foreignKey' => 'destination_city_id',
'conditions' => '',
'fields' => '',
'order' => '',
)
);
}
当我打开我的“负荷”模式的列表,它工作正常第一次,但在那之后,我得到:
Catchable fatal error: Object of class __PHP_Incomplete_Class could not be converted to string in /home/mike/Projects/myapp/cake/libs/debugger.php on line 554
如果我手动删除缓存,它工作正常。
我开始一次删除app/tmp/cache/persistent
中的文件,并且它在删除load.php
文件后生效。如果我做php load.php
它返回没有错误或任何东西(所以我认为它的工作原理)。
我的理论是它在第一次正常工作,但当Cake 1.3获得Load的缓存时,它会尝试查找对象名称OriginCity
和DestinationCity
,当然这些对象都没有。
那么我可以用缓存来做些什么呢?或者有没有更好的方法让CakePHP 1.3指向两个不同的belongsTo
指向相同的对象类型?
编辑:我改变缓存方法为APC,我仍然得到了同样的问题。所以我关闭了整个网站的缓存,并且工作。