1

説明

ReviewHolderセッションに呼び出されるカスタム オブジェクトを追加しようとしています。これは「レビュー」コントローラで行われています。ReviewHolderクラスはファイルに含まれていますclasses/controller/review.php。Kohana バージョン 3.2 を使用しています。

コード

$session = Session::instance();
$reviewholder = $session->get('reviewholder');
if($reviewholder == null) {
    $session->set('reviewholder', new ReviewHolder());
}

問題

問題は、上記のコードを実行した後、セッションが破損し、Web サイトのほぼ全体が正しく機能しなくなることです。これは、すべてのページのエラー メッセージです。

Session_Exception [ 1 ]: Error reading session data.

奇妙な部分

「レビュー」コントローラーから読み込まれたすべてのページは、すべて正常に機能します。上記のコードは、アプリケーション内の他のすべてのセッションを台無しにしているようです...

デバッグ

次のコードを使用してセッションをデバッグし、オブジェクトが正しく設定されているかどうかを確認しました。

echo Debug::vars($session->get('reviewholder'));

これにより、オブジェクトが正しく表示されるため、セッションで設定されています。


誰かがここで私を助けてくれますか? ありがとう!

4

2 に答える 2

1

セッションファイルの内容は重要ではありません。

私が知っているのは、セッションでシリアル化されたオブジェクトのみを格納できるということだけです。

シリアル化した後、それをセッションに保存し、後で使用するために再びオブジェクトにすることができます。シリアル化されたオブジェクトのシリアル化を解除できます。

お役に立てれば!

于 2012-10-08T23:03:25.327 に答える