К сожалению, php не позволяет сериализовать ссылки на один объект из другого. Вот почему, когда вы восстанавливаете ваш объект, он не содержит данных, с которых он начал.
Лучшее решение, которое я нашел, - это создание объекта Session в слое моей модели, который восстанавливается с помощью cookie. Таблица сеансов в вашей базе данных обрабатывает ссылки на объекты, которые в противном случае вы бы сериализовали. Как только ваша модель сеанса загружена, вы можете использовать ее для загрузки «сохраненных в сеансе» объектов, охотно или лениво.
Кроме того, если эти объекты содержат ссылки на другие объекты модели, вы можете использовать тот же принцип для обхода остальной части уровня модели на основе реляционных ссылок. Это может показаться пугающим, но есть ряд ORM, которые вы могли бы проверить, если вам неудобно внедрять их самостоятельно.