получить от менеджера объекта до того, как ID - PullRequest
0 голосов
/ 20 сентября 2011

Вот ситуация -

Мне нужно сохранить объект между страницами. На первой странице я создаю объект и создаю для него форму. На второй странице я сохраняю объект. Затем у пользователя есть возможность вернуться и отредактировать свой выбор, или закончить и опубликовать.

Я бы предпочел не сбрасывать свои изменения в базу данных, пока пользователь не закончит редактирование объекта. Проблема в том, что объект не получает уникальный идентификатор, пока он не будет сброшен в базу данных.

Кто-нибудь знает, как я могу получить сохраненный, но незапятнанный объект? Это вообще возможно? Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 20 сентября 2011

Вы сериализуете объект, пока не завершите все его свойства. Вы можете держать сериализованный объект в сеансе для сохранения между страницами. Когда вы будете готовы обновить или вставить, просто отмените его сериализацию и поместите в базу данных.

РЕДАКТИРОВАТЬ: пример

// page 1
$object->setProperty($value);
$_SESSION['object'] = serialize($object);

// page 2
$object = unserialize($_SESSION['object']);
// use $object

$_SESSION['object'] = serialize($object);


// page N
$object = unserialize($_SESSION['object']);
$object->insertIntoDB();

РЕДАКТИРОВАТЬ 2 - Не забудьте включить определение класса во все страницы, которые не сериализуют объект, иначе он не будет работать.

...