Я обновляю существующее приложение с CakePHP 1.2 до 1.3.Упрощенная версия одной из моделей выглядит следующим образом:
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, и у меня все еще осталась та же проблема.Я отключил кеширование по всему сайту, и это сработало.