お互いに参照先が違うという問題が発生。
CakePHP はデフォルトでデータベースを使ったセッションが提供されている
そうなので使ってみた。
まずは以下のクエリをデータベースで発行。
/*---------------------------------------------------------------------------*/
CREATE TABLE IF NOT EXISTS `cake_sessions` (
`id` varchar(255) NOT NULL DEFAULT '',
`data` text NOT NULL,
`expires` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
/*---------------------------------------------------------------------------*/
次に core.php を編集。Session の設定が書いてあるところ。
/*---------------------------------------------------------------------------*/
Configure::write('Session', array(
'defaults' => 'database',
));
/*---------------------------------------------------------------------------*/
データベースを使用するための設定はこれだけで十分です。
さっそくテスト。
/*---------------------------------------------------------------------------*/
Error: Table app_models for model AppModel was not found in datasource default.
/*---------------------------------------------------------------------------*/
エラー出たよ。なぜか app_models テーブルがないと怒られている。
試しに useTable を書き換えてみたら別のエラーで怒られた。
なので、使用するモデルを自分で指定する。
core.php に追加。
/*---------------------------------------------------------------------------*/
Configure::write('Session', array(
'defaults' => 'database',
'handler' => array(
'model' => 'CakeSessions'
)
));
/*---------------------------------------------------------------------------*/
CakeSessions というテーブルを作り、そのモデルを呼び出すように変更。
エラーが出ることはなく、セッションもしっかり機能した。