我將現有的應用程序從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,我仍然得到了同樣的問題。所以我關閉了整個網站的緩存,並且工作。