0

情况如下——

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

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

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

4

1 回答 1

1

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

编辑:示例

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

于 2011-09-20T08:31:48.447 回答