在ID给定之前从实体管理器检索


retrieve from entity manager before ID is given

情况是这样的-

我需要在页之间持久化一个对象。在第一页上,我创建了对象,并为它创建了一个表单。在第二页,我持久化对象。然后用户可以选择返回并编辑他们的选择,或者完成并发布。

我希望在用户完成编辑对象之前不要将更改刷新到数据库中。问题是对象在刷新到数据库之前不会获得唯一的ID。

有谁知道我如何检索持久但未刷新的对象吗?这可能吗?有更好的方法吗?

序列化对象,直到完成它的所有属性。您可以在会话中保存序列化对象,以便在页之间持久化。当您准备好更新或插入时,只需将其反序列化并将其放入数据库。

编辑:例子

// 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 -不要忘记在所有反序列化对象的页面中包含类定义,否则它将不起作用。