PHP - скрипт пытался выполнить метод или получить доступ к свойству незавершенного объекта - PullRequest
3 голосов
/ 04 января 2012

Я использую CI, и у меня есть UserModel, который выбирает пользователя на основе информации для входа в систему, устанавливает userVO и добавляет это userVO в сеанс, подобный следующему:сеанс, он возвращает мне эту ошибку:

Message: main() [function.main]: The script tried to execute a method 
or access a property of an incomplete object. Please ensure that the 
class definition "UserVO" of the object you are trying to operate on 
was loaded _before_ unserialize() gets called or provide a __autoload() 
function to load the class definition.

Я нашел «решение», мне нужен CI, чтобы загрузить класс UserVO перед классом сеанса, и он работает.

Проблема в том, что яу меня много классов VO, и они мне понадобятся внутри сессии, и это плохая вещь для их автозагрузки, потому что они мне не понадобятся одновременно.

Есть ли обходной путь?

Заранее спасибо за любую помощь.

1 Ответ

15 голосов
/ 05 января 2012

Что происходит, вы сохраняете экземпляр класса в сеансе.Чтобы восстановить его, вам сначала нужно загрузить базовый класс, к которому он относится.Скорее всего, у вас много «экземпляров» класса VO, а не классов VO.Вам просто нужно загрузить файл с объявлением класса.

Экземпляр класса действительно содержит только то, что изменилось из базового класса, а не весь класс.Поэтому ему нужен базовый класс, чтобы знать, что такое «значения по умолчанию».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...