CakePHPのセッション管理
CakePHP2のフォームを作る方向で調査していたのだが、POSTの際には
$this->request->data
で参照出来るのだが、リロードした場合にrequestから全て消滅してしまう。
リロード対策としてPOSTした先でセッションに格納と言う事でなんとか対処しようと
$this->Session->write('hoge',$this->request->data);
と言う形で、POSTされたデータをそのまま変数hogeの中にぶっ込んだ。
のだが、挙動がおかしい。
CakePHPで生成されたセッション変数は保存されるのだが、リロードするとセッションが保存されない。
色々と悩んだが
function beforeFilter(){ session_start(); ← コレを追記 parent::beforeFilter(); }
明示的にページ内でセッション宣言をする。これだけなのだがCakeの変数自体は保存されているしもっと言えばwriteで格納したデータもvar_dumpで表示すると格納されているのだが
ページを離れた段階で消えてしまう。
普通のフォームの感覚で作ってると本当に面倒な事なる。。