0

これが状況です-

ページ間でオブジェクトを保持する必要があります。最初のページで、オブジェクトを作成し、そのフォームを作成します。2 ページ目では、オブジェクトを永続化します。ユーザーは、戻って選択内容を編集するか、終了して投稿するかを選択できます。

ユーザーがオブジェクトの編集を完了するまで、変更内容をデータベースにフラッシュしたくありません。問題は、オブジェクトがデータベースにフラッシュされるまで一意の 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();

EDIT 2 - オブジェクトを非シリアル化するすべてのページにクラス定義を含めることを忘れないでください。そうしないと、機能しません。

于 2011-09-20T08:31:48.447 に答える