ぶつかった問題。
CakePHPのクッキー・コンポーネントを利用しているんだけど、2次元配列で値を収めた直後は大丈夫なんだけど、次にアクセスした時(別のビュー)に移った時に読み込めない点。
先ずは、そもそも追加の仕方に問題があるんだ!と思って自分を疑う。
配列に配列を追加するのは array_push() 。
このやり方から間違ってるんじゃないかな?とか。。。
こんな風なのをビュー側に書いてみて調査。
$hoge = array();
$ha = array(
'a' => 1,
'b' => 2
);
$hb = array(
'a' => 3,
'b' => 4
);
array_push($hoge, $ha, $hb);
debug($hoge);
。。。一応動いてるっぽい。
これと同じ事をコントローラ側でやりたいんだけど。。。出来ない(泣
やってみたこと
CakePHPにはグローバル関数というものがあるので、そっちを利用すると良いのかな?
と思い、配列の作り方を変えてみる。
$hoge = array();
$ha = aa(
'a', 1,
'b', 2,
);
$hb = aa(
'a', 3,
'b', 4,
);
array_push($hoge, $ha, $hb);
debug($hoge);
aa() というのが、キー, 値 で連想配列を作ってくれる関数。
全部カンマで区切って、奇数値がキー。偶数値が値。
こんなんやってみたけどダメ。
次に、じゃーモデル経由させてみよー丶(・ω・)ノって思って、モデル側に関数を用意。
function arrayCombine($arrA, $arrB) {
array_push($arrA, $arrB);
return $arrA;
}
これ経由でもダメ。
そもそもダメな点
他にもちょびっと考えられる事を試してみたけど全部ダメ。
そんなこんなやって気付いたのは、そもそも保存は出来ても読出しがダメなんだよね!という点。<ズコー
保存動作してみて、直後のビューでは反映されるけど、他のビューに切り替わるとCookieから読み込んだ値が全部空になってマス。
この動作はいったい何なのでしょう。。。
Array (
[a] => Array
[b] => Array
)
というワケで、最終的には・・・クッキー利用取り止めてセッションに切替!
おしまい!(泣
あとがき
神は言っている。ここでクッキーに負ける定めではないと・・・!!
。。。すいません負けました。完膚なきまでに叩きのめされました。
でも、クッキー利用もセッション利用も勉強したかったので、良い機会だったんだきっと!と割り切ってます。
セッションもクッキーも、やってみると面白いなぁ。。。