Cookieコンポーネント使って、クッキー利用でぶつかってる問題点

ぶつかった問題。
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
)

というワケで、最終的には・・・クッキー利用取り止めてセッションに切替!
おしまい!(泣

あとがき

神は言っている。ここでクッキーに負ける定めではないと・・・!!
。。。すいません負けました。完膚なきまでに叩きのめされました。

でも、クッキー利用もセッション利用も勉強したかったので、良い機会だったんだきっと!と割り切ってます。
セッションもクッキーも、やってみると面白いなぁ。。。

▲ to Top

トラックバック(0)

▲ to Top